约束
约束:在创建表时,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性,有效性,完整性。
非空约束
非空约束(NOT NULL):被约束的字段不能为NULL。
唯一约束
唯一约束(UNIQUE):被约束的字段不能重复。
- 列级约束
- 表级约束:多个字段联合起来添加一个约束
主键约束
主键约束(PRIMARY KEY):约束的字段既不能重复,也不能为NULL。
MySQL提供主键值自增
(非常重要)
外键约束
- 外键约束(FOREIGN KEY):
- 外键字段:添加有外键约束的字段。
- 外键值:外键字段中的每一个值。
- 注意:外键可以为NULL
例子
t_student中的classno字段引用了t_class表中的cno字段,此时t_student表叫做子表,t_class表叫做父表。
顺序要求
- 删除数据时,先删除子表,再删除父表。
- 创建数据时,先添加父表,再添加子表。
- 创建表的时候,先创建父表,再创建子表。
- 删除表的时候,先删除子表,再删除父表。
建表语句
//如果该表存在,先删除
drop table if exists t_student;
drop table if exists t_class;
//创建父表
create table t_class(
cno int,
cname varchar(255),
primary key(cno)
);
//创建子表
create table t_student(
sno int,
sname varchar(255),
classsno int,
foreign key(classno) references t_class(no)//外键约束
);
检查约束
检查约束(CHECK):Oracle中有该约束,MySQL暂不支持该约束。