MySQL 中提供了多种约束来确保数据完整性,包括:主键约束(唯一标识记录)、外键约束(关联表之间的记录)、唯一约束(确保字段或字段组合唯一)、检查约束(定义数据值范围)、NOT NULL 约束(防止空值)、自增约束(自动生成唯一数字)、默认约束(指定字段默认值)、外键引用约束(确保外键值引用主表记录)、索引约束(提高查询性能)。

MySQL 中常用的约束
MySQL 提供了一系列约束,用于确保数据完整性、一致性和有效性。以下是最常用的约束:
1. 主键约束
- 唯一标识表中的每条记录。
- 不能为空。
- 通常由唯一的值或组合的值组成。
2. 外键约束
- 将一个表中的字段与另一个表中的主键列关联。
- 确保数据一致性,防止出现“悬浮”记录。
3. 唯一约束
- 确保表中的每个记录在指定的字段或字段组合上都是唯一的。
- 允许空值。
4. 检查约束
- 定义数据在表中可以取哪些值。
- 可以使用 SQL 表达式进行验证。
5. NOT NULL 约束
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
- 确保指定的字段不能包含空值。
6. 自增约束
- 为表中新插入的记录自动生成唯一且递增的数字。
7. 默认约束
- 指定字段的默认值,当插入记录时,如果字段值为空,则使用默认值。
8. 外键引用约束
- 指定外键字段必须引用主表中存在的记录。
9. 索引约束
- 并非真正的约束,但可以提高表上的查询性能。
- 允许对指定字段或字段组合进行快速、高效的搜索。
示例:
CREATE TABLE products ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) UNIQUE, price DECIMAL(10,2) CHECK (price > 0), category_id INT, CONSTRAINT FK_category FOREIGN KEY (category_id) REFERENCES categories (id) );
在这个示例中,使用了以下约束:
- 主键约束(id)
- 唯一约束(name)
- 检查约束(price)
- NOT NULL 约束(id, name, price)
- 自增约束(id)
- 外键约束(FK_category)









