前面已经说过了约束是保证数据库表中数据的完整性和一致性的手段。
1.主键约束:主键约束在每一个数据表中只有一个,但是一个主键约束可以由数据表中多个列组成。
主键约束是用来保持列中数据的唯一性的,设置主键约束的属性既不能重复也不能为空。
主键约束可以怎么设置呢?
第一种是建表时通过 primary key(字段名)来设置。
第二种使用DML语句里面的alter
alter table table_name add constraints constraint_name primary key(column_name);
首先创建一个没有约束的表
增加主键
那么如何删除主键呢?
还是利用DML语句
2.外键约束
外键约束可以保证使用外键约束的数据列与所引用的主键约束的数据列一致,外键约束在一个数据表中可以由多个。
还是先来看外键约束怎么来用。
第一种使用外键约束来创建表
在创建表的时候最后来这么一句
constraint constraint_name//外键约束名
foreign key(column_name)//外键约束列名
references//要引用的表名
table_name(column_name)
on delete cascade;//设置级联删除,当主键的字段被删除时,外键所对应的字段也被删除
第二种在修改数据库表时添加外键约束
alter table table_name
add constraint constraint_name foreign key(column_name) references table_name(column_name) on delete cascade;
同样怎么删除外键约束呢?
3.检查约束
检查约束是用来规定输入值大小的,能够保证数据的正确性
同样可以在创建表的时候来创建
constraint constraint_name check(condition);
也可以在表创建完以后进行修改
语句很清楚就是
alter table table_name add constraint constraint_name check(condition);
怎么删除呢??
alter table table_name drop constraint constraint_name;
4.unique约束
唯一约束,他和主键约束相同,都是保证列中数据的唯一性,但是唯一约束可以有多个,而且允许值为空。
同样创建方法有两种
一种是在创建表的时候创建
constraint constraint_name unique(column_name):
再就是在修改表的时候创建
alter table table_name add constraint constraint_name unique(column_name);
怎么移除呢?
alter table table_name drop constraint constraint_name;
5.not null约束
也就是非空约束。
创建表的时候直接创建
修改的时候进行约束
对于非空约束不用删除,因为并没有添加什么,直接修改为null就好