-
数据类型
- 整数类型: int 和 bigint
create table t1( name varchar(10), age int(10) zerofill )
zerofill 表示这个列的数据长度不足时前面用0补位
- 浮点数: float(m,d) 和 double(m,d),m代表长度,d代表小数长度。
- 字符串: char(m) 固定长度m=10,存abc也占10位。varchar可变长度,最大长度65535, 超过255建议使用text
- 日期: date年月日。time时分秒。datetime: 默认值为null,最大9999-12-31。 timestamp: 默认值为当前系统时间。
-
数据库约束
-
. 数据库约束
储存在数据库中的所有数据值均为正确的状态。如果有不正确数据则称为已丧失数据完整性。 -
. 主键约束
- 什么是主键: 表示数据唯一性的字段为主键。
- 什么是约束: 创建表时,给字段添加限制条件。
-
//设置id为主键,primary key
create table tt(id int primary key, name varchar(10));
insert into tt values(1,'aaa');//成功
insert into tt values(1,'bbb');//报错,不能重复
insert into tt values(null,'ccc');//报错,不能为null
-
. 主键约束+自增
create table t3(id int primary key auto_increment, name varchar(10)); insert into t3 values(null,'aaa'); //1 insert into t3 values(null,'bbb'); //2 insert into t3 values(10,'ccc'); //10 insert into t3 values(null,'ddd')//11 delete from t3 where id >= 10; insert into t3 values(null,'eee');//12
-
非空约束
被设置非空约束的列数据不能为空。create table t4( id int primary key auto_increment, name varchar(10) not null, addr varchar(30) ); insert into t4 values(null,'aaa',null); //ok insert into t4 values(null,null,'beijing'); //fail insert into t4 values(null,'','shanghai'); //ok
-
唯一约束
被设置唯一约束的列数据不能出现重复的值create table t5( id int primary key auto_increment, name varchar(10) not null, phone varchar(11) unique ); insert into t5 values(null, 'aaa', null); //ok insert into t5 values(null, 'bbb', '123'); //ok insert into t5 values(null, 'eee', '123'); //fail