MySQL列的完整性约束

完整性约束

完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求,如果不满足完整性的约束,就会报错,MySQL中基本的完整性约束条件见下表。
在这里插入图片描述

1.主键PRIMARY KEY

可以唯一表示对应元组,主键的主要目的时帮助数据库管理系统以最快的速度查找到表的某一条信息,主键必须满足的条件必须是唯一的,不能为NULL。
在设置主键的时候有两种形式(单字段和多字段):
1.单字段
①在属性的类型定义后直接表明主键在这里插入图片描述
②在列的属性类型全部定义完后再设置主键
在这里插入图片描述
2.多字段
联合主键:p_k和e_int联合组成主键
create table p_k3(p_k int ,e_int int(5) zerofill,name varchar(128),PRIMARY KEY(p_k,e_int));
在这里插入图片描述

在MySQL中支持给主键命名
//设值id为主键并把主键名设为id_pk.(以后如果要删除该约束的话可以根据主键名来删除)
create table p_k(id int,name varchar(128),CONSIRAINT id_pk PRIMARY KEY(id));

2.外键FOREIGN KEY

外键是表的一个特殊字段,外键约束是为了保证多个表(通常是两个表)之间的参数完整性,既构建两个表的字段之间的参数关系。
设置外键约束的两个表之间具有父子关系,即子表中的某个字段的取值范围由父表决定。
一个表的外键对应另一个表的主键,设置FK约束的字段必须依赖于数据库中已经存在的父表的主键,同时外键可以为NULL.
在这里插入图片描述
语法:FOREIGN KEY(要设为外键的属性)REFERENCES 其他表(对应其他表的某个主键属性)
在这里插入图片描述
操作:
在这里插入图片描述

3.非空NOT NULL

设为NOT NULL的属性在插入记录的时候对应该属性的值就不能为空,指定为主键就自带非空
太简单了就不举例子了

4.唯一UNIQUE

唯一不等于不为空,每条记录对应该UNIQUE的值是唯一的但是空值可以设置多次。
在这里插入图片描述

5.字段值自动增加AUTO_INCREMENT

切记:一个数据库的一个表中只能有一个字段使用该AUTO_INCREMENT约束,而且该字段还必须是整数类型,在设置AUTO_INCREMENT时必须同时设置主键,每增加一条记录,记录中该字段的值会在前一条记录(**或已存在的最大值)的基础上加1
例1:已存在(包括曾经存在(删除了的记录))的最大值加1:
在这里插入图片描述
例2:上一条基础上加1
在这里插入图片描述
总结:其实总的来说就是其实它会
排序
,要说自增的话其实就是前面那一个记录对应该属性的值加1
注意:mysql中定义auto_increment时必须设置键(主键,外键,唯一键unique均可)

6.设置表字段的默认值(DEFAULT)

create table e_default(id int,name varchar(32)default’无名’);//加在类型名后再指定默认值(什么样的类型指定什么样的默认值)
在这里插入图片描述如果没设置默认都是为空NULL.

猜你喜欢

转载自blog.csdn.net/Jacksqh/article/details/106399097