MySQL表的约束
发布人:shili8
发布时间:2025-03-13 07:37
阅读次数:0
**MySQL 表的约束**
在 MySQL 中,约束(Constraints)是用来限制表中数据的完整性和有效性的。通过使用约束,可以确保表中的数据遵循特定的规则,从而避免错误或不一致的数据。
**1. 主键约束(Primary Key Constraint)**
主键约束是一种唯一标识每个记录的值。它可以是整数、字符串或其他类型的值。在一个表中,只能有一个主键。
sqlCREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255) );
在上面的例子中,`id` 是主键,它唯一标识每个用户记录。
**2. 外键约束(Foreign Key Constraint)**
外键约束是指一个表中的字段与另一个表的主键相关联。它用于维护数据的一致性和完整性。
sqlCREATE TABLE orders ( id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );
在上面的例子中,`orders` 表中的 `user_id` 字段是外键,它与 `users` 表的主键 `id` 相关联。
**3. 唯一约束(Unique Constraint)**
唯一约束是一种保证每个记录的某个字段值都是独一无二的。它可以用于避免重复数据。
sqlCREATE TABLE products ( id INT PRIMARY KEY, name VARCHAR(255) UNIQUE);
在上面的例子中,`name` 字段是唯一约束,它保证每个产品名称都是独一无二的。
**4. 检查约束(Check Constraint)**
检查约束是一种用于验证表中数据是否符合特定规则的约束。它可以用于避免错误或不一致的数据。
sqlCREATE TABLE employees ( id INT PRIMARY KEY, salary DECIMAL(10,2) CHECK (salary >0) );
在上面的例子中,`salary` 字段是检查约束,它保证每个员工的薪水都是大于零的。
**5. 默认值约束(Default Constraint)**
默认值约束是一种用于指定表中某个字段的默认值的约束。它可以用于避免空值或缺失数据。
sqlCREATE TABLE customers ( id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255) DEFAULT 'unknown@example.com' );
在上面的例子中,`email` 字段是默认值约束,它保证每个客户的电子邮件地址都是 `unknown@example.com`。
**6. 非空约束(Not Null Constraint)**
非空约束是一种用于指定表中某个字段不能为 NULL 的约束。它可以用于避免空值或缺失数据。
sqlCREATE TABLE addresses ( id INT PRIMARY KEY, street VARCHAR(255) NOT NULL, city VARCHAR(255) );
在上面的例子中,`street` 字段是非空约束,它保证每个地址的街道名称都是不为 NULL 的。
**总结**
MySQL 表的约束是一种用于限制表中数据的完整性和有效性的机制。通过使用约束,可以确保表中的数据遵循特定的规则,从而避免错误或不一致的数据。在本文中,我们介绍了六种常见的约束类型,包括主键约束、外键约束、唯一约束、检查约束、默认值约束和非空约束。这些约束可以帮助您创建更强壮和可靠的数据库应用程序。