检查约束
严格上说,mysql是不支持检查约束的,但是mysql提供了可选内容的约束。
也就是说,字段只能在给出的范围内选择。
语法:
字段名 enum('a1','a2',...)
# 方法2
字段名 set('a1','a2')
注意:enum只能从指定的值里面选一个,set可以选择多个。
唯一约束
被唯一约束字段,它的值不可以重复。
语法:
字段名 数据类型 unique
注意:
1 unique使用的时候,字段的业务含义需要符合唯一性的要求。比如手机号码,身份证号码,这种就是唯一的,不会重复的。
2 unique不能和默认值约束一起使用,因为他们冲突。
外键约束
外键是处理表和表之间关系的。
字段被其他表引用的表,就是主表。而引用其他表的字段的表,就是从表。
外键定义:外键的本质上是一个字段。它的作用是从表中用来和主表建立关联关系的字段。
使用外键:foreign key(no) references stuednt(stuNo)
foreign key(no) 设置本表中的某个键 为外键
references student(stuNo) 和主表student 的stuNo关联
在定义的使用:
create table table1(
id int primary key,
no int,
degree int,
foreign key(no) references student(stuNo) ,
)
给已经创建好的表添加外键:
alter table table1 add foreign key(tno) references table2(tno) on delete restrict on update cascade
table1表的tno 引用table2的tno作为外键,不允许删除主键,可以和主键一起变更。
删除外键
alter table table1 drop foreign key 外键名