主打一个实用
本篇主要是应用,具体sql操作语句自查
一. 主键约束
主键用于唯一标识一条记录,每个表只能有一个主键(多字段为联合主键)
主键列特性:非空
,唯一
- 在
Navicat
中添加主键
新建表时如果没有设主键是会失败的,这个金色钥匙就是主键的标识了

- 主键自增策略
选中主键加上即可,自增策略可以按顺序自动生成不重复序号

- 截断表
截断表
truncate
与清空表delete
的区别🎈截断表:保留表结构,其他都删除,
自增字段会回到默认值开始
清空表:保留表结构,不释放空间,
自增字段不会重置
二. 非空约束
添加非空约束

三.唯一约束
添加唯一约束

四. 缺省(默认)约束
即默认值,如果未填会默认该值


五. 外键约束
- 单表的缺点
数据内容大部分重复,并且修改时需要遍历所有内容修改,比如所在社区,可以将社区单独划为一张表,在原表只需记录其id
- 外键的规范
要求:
外键列的数据类型和长度必须和被参照的主键列的数据类型和长度一致
- 外键的添加方式
关联键为主键的是主表,反之,从表(子表)
外键在从表添加
此处以级联更新删除为例,当然不止这一种选项

- 更新删除策略
CASCADE
:从父表删除或更新且自动删除或更新子表中匹配的行
SET NULL
:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL
RESTRICT
:拒绝对父表的删除或更新操作
NO ACTION
:标准SQL的关键字,在MySQL中与RESTRICT相同