# P36 36. 基础-约束-小结

> 本页是学习笔记，不等同于视频逐字稿。原声字幕未取得（匿名接口字幕轨为空且需登录，未使用任何账号），也没有逐句讲解记录；讲义只按节与页码对应，切点未逐句确证。

> 以同版讲义的公开镜像核对章节与页码（镜像非官方出品）；非逐字稿，示例为原创补充。

## P36 36. 基础-约束-小结

- 原视频：https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=36（p=36），时长 2:15
- 讲义：参照前节整理，无独立讲义正文；参照前节 4.1–4.3 约束（p61–68）

- 本集练习数据：practice/p36.sql（先执行，再对照小例）

### 一句话理解

约束小结就是六类约束的清单，加上“它保证什么、不能保证什么”。

### 要点

- 六类：NOT NULL、UNIQUE、PRIMARY KEY（可配 AUTO_INCREMENT）、DEFAULT、CHECK、FOREIGN KEY。
- 各自管什么：空值、重复、唯一标识、缺省值、取值范围、表间引用；主键 = 唯一 + 非空，UNIQUE 允许多个 NULL。
- 怎么加：建表时写在字段后，或用 `ALTER TABLE` 补；已有脏数据要先清洗，否则 ALTER 直接失败。

### 30 秒回忆

六类约束 + 各自作用 + 加法（建表 / ALTER）+ 先洗数据；主键 = 唯一 + 非空。

关联课：P32 32. 基础-约束-概述 · P33 33. 基础-约束-演示 · P34 34. 基础-约束-外键约束 · P35 35. 基础-约束-外键删除更新行为

### 自测

1. UNIQUE 和 PRIMARY KEY 最主要的区别是什么？
   - 答：主键要求非空且唯一，一张表只能有一个；UNIQUE 只保证不重复，允许 NULL，一张表可以有多个唯一约束。

### 材料与来源

- [平台视频页] P36 原视频页（BV1Kr4y1i7ru） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=36
- [官方文档] MySQL 8.0 Reference：CREATE TABLE 与约束 https://dev.mysql.com/doc/refman/8.0/en/create-table.html

证据说明：讲义无“小结”正文；本页参照前节 4.1–4.3 约束（p61–68）整理。画面 t80/tend 帧完整列出六类约束；原声字幕未取得，讲师逐句讲解未核。
