MySQL数据库的约束问题

81 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情

数据定义语言:字段约束

数据库的范式

构造数据库必须遵循一定的规则,这种规则就是范式

目前关系数据库有6种范式,一般情况下,只满足第三范式即可

第一范式:原子性

  • 第一范式是数据库的基本要求,不满足这一点就不是关系数据库
  • 数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复的属性。

image.png

第二范式:唯一性

  • 数据表中的每一条记录是唯一的。为了实现区分,通常要为表加上一个列用来存储唯一标识,这个唯一属性列被称作主键列。

image.png

第三范式:关联性

  • 每列与主键有直接关系,不存在传递依赖

image.png

  • 按照第三范式,数据可以拆分保存到不同的数据表,彼此保持关联

image.png

字段约束

MySQL中的字段约束共有四种:

主键约束、非空约束、唯一约束、外键约束

image.png

主键约束

  • 主键约束要求字段的值在全表必须唯一,而且不能为NULL值
  • 建议主键一定要使用数字类型,因为数字的检索速度就非常快
  • 如果主键是数字类型,还可以设置自动增长
CREATE TABLE T_teacher(
	id INT PRIMARY KEY AUTO_INCREMENT,
    
);

非空约束

  • 非空约束要求字段的值不能为NULL值
  • NULL值以为没有值,而不是 “” 空字符串
NOT NULL

唯一约束

唯一约束要求字段值如果不为NULL,那么在全表必须唯一

外键约束

  • 外键约束时用来保证关联数据的逻辑关系
  • 外键约束的闭环问题

image.png