帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【服务器相关】MySql约束超详细介绍

发表时间:2025-06-16 03:46:00 小编:主机乐-Yutio

1. 什么是约束

约束对应的英语单词:constraint

在创建表的时候,我们可以给表中的字段加上一些约束,来保证表中的数据的完整性、有效性!!!

约束的作用就是为了保证:表中的数据有效!!

2. 约束包括哪些

非空约束 not null

唯一性约束 unique

主键约束 primary key

外键约束 foreign key

检查约束 check

3. 非空约束

非空约束 not null 约束的字段不能为 NULL

4. 唯一性约束

唯一性约束 unique 约束的字段不能重复,但是可以为 NULL

1. 单字段唯一性约束

2. 多字段唯一性约束

需求:name 和 email 两个字段联合起来具有唯一性!!!

5. 主键约束

主键约束 primary key 简称 pk

1. 主键约束的相关术语

  1. 主键约束:就是一种约束。
  2. 主键字段:该字段上添加了主键约束,这样的字段叫做:主键字段。
  3. 主键值:主键字段中的每一个值都叫做:主键值。

2. 什么是主键以及有啥用

主键值是每一行记录的唯一标识

主键值是每一行记录的身份证号!!!

记住:任何一张表都应该有主键,没有主键,表无效!!!

主键的特征:not null + unique(主键值不能是 NULL,同时也不能重复)

3. 单一主键

主键不能重复

主键不能为NULL

4. 复合主键

5. 其他主键

除了单一主键和复合主键外,还拥有:

  • 自然主键:主键值是一个自然数,和业务没有关系。
  • 业务主键:主键值和业务紧密关联,例如拿银行卡账号做主键值。这就是业务主键!

实际开发中,使用自然主键多,很少使用业务主键!!!

主键一旦和业务值挂钩,可能会出现各种问题!!!

6. 外键约束

外键页数 foregin key 简称 fk

1. 外键约束的相关术语

  1. 外键约束:一种约束:foregin key。
  2. 外键字段:该字段上添加了外键约束。
  3. 外键值:外键字段当中的每一个值。

2. 外键出现的原因

业务背景:

请设计数据库表,来描述 “班级和学生” 的信息?

第一种方案:班级和学生存储在一张表中

分析上述方案的缺点:数据冗余,空间浪费!!!

第二种方案:班级一张表,学生一张表

当 cno 字段没有任何约束的时候,可能会导致数据无效。可能出现一个 102,但是 102 班级不存在,所以为了保证 cno 字段中的值都是 100 和 101,需要给 cno 字段添加外键约束。 那么:cno 字段就是外键字段。cno 字段中的每一个值都是外键值。

注意:

t_class 是父表 t_student 是字表

删除表的顺序?

先删子,再删父。

创建表的顺序?

先创建父,再创建子。

删除数据的顺序?

先删子,再删父。

插入数据的顺序?

先插入父,再插入子。

3. 创建外键表

创建表

插入数据

注意:子表中的外键引用的父表中的某个字段,被引用的这个字段必须是主键吗?

不一定是主键,但至少具有 unique 约束。

到此这篇关于MySql约束超详细介绍的文章就介绍到这了,更多相关MySql约束内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


联系我们
返回顶部