数据库五大约束

所谓约束,其实就是一种保障,比如一个属性添加了主键约束,那么就强制保障了它的唯一性和非空性,请带着这样正确的理解去阅读后文。

数据库有五大约束,分别是:

  • 主键约束(Primay Key Coustraint):唯一,非空
  • 唯一约束 (Unique Counstraint):唯一,可以为空,但即便为空也只能有一个
  • 检查约束 (Check Counstraint) :申明该列数据的取值范围(如:年龄、性别等)
  • 默认约束 (Default Counstraint) :设置默认值
  • 外键约束 (Foreign Key Counstraint) : 关于外键的约束

主键约束

主键约束的要求是“唯一,非空”,因此主键不需要、也不能再设置唯一约束了。

另外,主键可以设置自动增长,而且,主键不一定是自动增长的,但自动增长的一定是主键。

设置主键的方式为:在定义列的时候再后面加上primary key
比如:

create table a(
	id int,
	constraint c_id primary key (id)
);

唯一约束

形如:

create table a(
	id int,
	constraint c_id unique(id)
);

检查约束

会在更新数据时检查数据插入或修改后是否符合约束条件,如果不符合则会导致更新失败。
形如:

create table a(
	age int,
	constraint c_age check(age>=0 && age<=150)
);

默认约束

就是当插入或修改一个字段后,如果某一个分量为null,则自动填充为默认值。
形如:

create table a(
	age int,
	constraint c_age defaule(18) for age
);

外键约束

外键约束定义的就是外键的关系。
形如:

create table 成绩表(
	studentid int,
	courseid int,
	grade int,
	constraint c_studentid Foreign key(studentid) References Student(id),
	constraint c_courseid Foreign key(courseid) References Course(id)
);

当然还可以动态地对约束进行操作,这里就不一一举例了,想详细了解约束的操作,推荐这篇博客:https://www.cnblogs.com/willingtolove/p/9215330.html#_label6

参考资料:
https://www.cnblogs.com/wcl2017/p/7043939.html
https://www.cnblogs.com/willingtolove/p/9215330.html#_label6
https://www.cnblogs.com/waj6511988/p/7027127.html

posted @ 2019-02-26 23:05  _吟游诗人  阅读(319)  评论(0编辑  收藏  举报