MySQL数据库约束是确保数据完整性的重要机制,它们用于限制或规定列中允许的数据类型和范围。以下是几种常见的MySQL约束,以及它们如何保证数据完整性:
- 主键约束(PRIMARY KEY):
- 主键约束确保表中的每一行都有一个唯一标识符。主键列的值必须是唯一的,不允许重复,且不能为NULL。这有助于防止数据冗余和确保每条记录都可以被唯一识别。
- 唯一约束(UNIQUE):
- 唯一约束用于确保表中某一列或多列的组合值是唯一的。虽然唯一约束允许列中存在NULL值(但整个组合必须唯一),但它通常用于确保数据的准确性和一致性。
- 检查约束(CHECK):
- 检查约束允许您限制列中值的范围或格式。例如,您可以要求某个数值列的值必须大于0。如果尝试插入不符合条件的数据,MySQL将拒绝该操作并返回错误。
- 外键约束(FOREIGN KEY):
- 外键约束用于在表之间建立链接,确保引用完整性。一个表中的外键列必须是另一个表的主键列的有效值。这有助于防止孤立记录的出现,即引用不存在的父表记录的子表记录。
- 非空约束(NOT NULL):
- 非空约束确保列中的值不能为NULL。这有助于确保数据的完整性和可用性,因为NULL值通常表示缺失或未知的数据。
- 默认值约束(DEFAULT):
- 默认值约束为列提供默认值,当插入新记录时未指定该列的值时,将使用默认值。这有助于确保数据的完整性和一致性,特别是在数据输入错误的情况下。
要创建这些约束,您可以使用MySQL的ALTER TABLE
语句,并在创建表时定义约束,或者在现有表上添加约束。例如:
CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT CHECK (age >= 18 AND age <= 65), department_id INT, FOREIGN KEY (department_id) REFERENCES departments(id) );
在这个例子中,我们创建了一个包含主键、非空约束、检查约束和外键约束的employees
表。