在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性,有效性,完整性
常见约束:
-
非空约束(not null)约束的字段不能为null
-
唯一约束(unique)约束的字段不能重复
-
主键约束(primary key)约束的字段既不能为null,也不能重复,简称PK
-
外键约束(foreign key)简称FK
-
检查约束(check)注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束
唯一性约束unique
唯一性约束修饰的字段具有唯一性,不能重复,但是可以为null
创建表时标注unique
//对usercode进行唯一性约束 drop table if exists t_user; create table t_user( id int, usercode varchar(225) unique ); //对usercode和username进行唯一性标注 //一,联合的唯一性,表级约束 drop table if exists t_user; create table t_user( id int, usercode varchar(225), username varchar(225), unique(user) ); //二,各自的唯一性 drop table if exists t_user; create table t_user( id int, usercode varchar(225) unique, username varchar(225) unique );
主键约束primary
添加主键约束的字段不能为null也不能重复
主键约束的作用
-
表的设计三范式中有要求,第一范式就要求任何一张表都应该有主键
-
主键值是这行记录在这张表当中的唯一标识,就像一个人的身份证号码一样
主键的分类
-
根据主键字段的字段数量来划分:
-
单一主键
-
复合主键,即多个字段联合起来添加的一个主键约束(不推荐)
-
-
根据主键的性质来划分
-
自然主键,与表内容没有关系的自然数
-
业务主键,主键值与系统的业务挂钩,不建议使用
-
一张表的主键约束只能有一个
MySQL提供主键值自增
drop table if exists t_user; create table t_user( id int primary key auto_increment, usercode varchar(225) );
外键约束
外键约束主要是用来连接表与表之间的关系
drop table if exists t_student; drop tabl eif exists t_class; creat table t_calss( cno int, cname varchar(255), primary key(cno) ); creat table t_student( sno int, sname varchar(255), classno int, foreign key(calssno) references t_class(cno) );