非空约束:不能为空,设置为:
not null
唯一约束:列不能有重复的内容:
CONSTRAINT uk_列名 UNIQUE (列名)
主键约束:既不能重复,也不能为空:
CONSTRAINT pk_列名 PRIMARY KEY (列名)
当设置了复合主键之后,只有两个字段的内容都相同的时候才表示重复,才表示违反了约束。
主键约束=非空约束+唯一约束。
主外键约束:
CONSTRAINT fk_列名 FOREIGN KEY(列名) REFERENCES 父表(列名)
删除表操作问题:
1,如果要删除父表的数据,首先要删除对应的所有子表数据。
级联操作一:级联删除,on delete casecade,当主表数据删除之后,子表的数据也应该被及时清理。
先清除之前建立的表格,子-主,然后重新建立表格,主外键语句后面需要加入:
CONSTRAINT fk_列名 FOREIGN KEY(列名) REFERENCES 父表(列名) on delete casecade
级联操作二:级联更新,on delete set null
当主表数据被删除后,对应子表数据的相应字段的内容设置为null。
级联操作看需求来进行选择操作。
2,删除父表之前,先删除子表。
混乱情况可以强制性删除:
drop table 表名 casecade constraint;
强制删除不建议使用,注意创建表的时候,脚步的执行顺序。