数据库是什么?
为了将数据持久保存,java中的对象都是在内存中,程序结束数据就会销毁,在学习IO过程中将数据存储在文件中,但是内容整体是字符串,使用起来不方便。所以需要数据库长久保存数据还便于提取
数据库产品:
MySQL 快捷、可靠 开源、免费
Oracle:功能强人,收费.
SQI Server(微软): 只能安装在windows操作系统 (收费)
DB2 (IBM) :适合处理海量数据,收费.
MySQL语法:
数据(结构)定义语言DDL(Data Definition Language):
用于创建和修改数据库表结构的语言
-- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8;
-- 删除数据库
Drop database if exists schooldb;
-- mysql中数据库一旦创建,名字不能修改
-- 修改数据库字符集
ALTER DATABASE schooldb CHARSET utf8;
TEXT列字符字符串:
TINYTEXT:最大长度255个字符(2^8-1)
TEXT:最大长度65535(2^16-1)
MEDIUMTEXT:最大长度16777215(2^24-1)
LONGTEXT最大长度4294967295(2^32-1)
创建表:
-- 创建表
-- 确定表名 学生信息表
-- 确定表中字段(列)学号,姓名,性别,生日,电话,身高,注册时间
-- 确定字段(列)的数据类型 以及长度
-- 确定列的约束
-- 创建表语法-- char(n)字长的字符串 固定存储n个字符,长度如果不够n,默认补空格
-- VARCHAR(n) 可变长度的字符串 n是最大长度 如果只存储两个字符 实际占有两个空间位置create table student(number int,`student`name varchar(6),gender char(1),birthday DAte,phone varchar(11),-- DECIMAL(3,2),,,,,,3是整数部分,2是小数部分height decimal(3,2),reg_time datetime
)-- 删除表结构
DROP TABLE student
约束:
主键: 在一张表中代表唯一的一条记录,不能为空,不能重复
PRIMARY KEY 设置主键约束
NOT NULL 不能为空约束
UNIQUE 唯一性约束
检查约束 设置条件
外键约束
主键自动增长,设置为自动增长时,只能为整数类型
AUTO_INCREMENT
默认值 DEFAULT default_value
字段注释: comment ‘注释’ (有不认识的英文单词注释成汉语方便看)
CREATE TABLE students(name INT PRIMARY KEY NOT NULL AUTO_INCREMENT, -- 设置为主键,一个表中只有一个number INT(5) NOT NULL UNIQUE, -- 不能为空,有唯一性stuname VARCHAR(10) NOT NULL COMMENT '学生姓名', -- 注释 age INT(3) CHECK(age>18), birthday DATE, height decimal(3,2),
)