MySQL中常见约束有哪些?作用和用法是什么?
2倍速学习网
2024-09-04 09:50:44
1. 主键约束(Primary Key Constraint)
作用:唯一标识表中的每一行,确保数据的唯一性,且不允许为NULL。
用法:在创建表时,通过PRIMARY KEY关键字定义。例如,CREATE TABLE Users (UserID INT PRIMARY KEY, UserName...
在数据库设计与管理中,MySQL作为一种广泛使用的关系型数据库管理系统,通过引入约束(Constraints)来维护数据的完整性、准确性和可靠性。这些约束确保了数据库中数据的正确性,防止了无效数据的插入或更新。下面,我们将深入探讨MySQL中几种常见的约束及其作用和用法。
1. 主键约束(Primary Key Constraint)
- 作用:唯一标识表中的每一行,确保数据的唯一性,且不允许为NULL。
- 用法:在创建表时,通过
PRIMARY KEY
关键字定义。例如,CREATE TABLE Users (UserID INT PRIMARY KEY, UserName VARCHAR(100));
2. 外键约束(Foreign Key Constraint)
- 作用:维护两个表之间的数据一致性,通过在一个表中定义外键来引用另一个表的主键。
- 用法:在创建表或修改表时,使用
FOREIGN KEY
关键字,并指定参照的表和列。例如,FOREIGN KEY (DeptID) REFERENCES Departments(DeptID);
3. 唯一约束(Unique Constraint)
- 作用:确保某一列或列组合中的值不重复,但允许NULL值存在。
- 用法:在创建表时,通过
UNIQUE
关键字定义。例如,UNIQUE (Email)
确保邮箱地址的唯一性。
4. 检查约束(Check Constraint)(注意:MySQL 8.0.16之前版本不直接支持,但可通过触发器等方式实现)
- 作用:限制列中可以存储的值范围,通过表达式定义列值的条件。
- 用法(假设MySQL 8.0.16及以上版本):
CHECK (condition)
。例如,CHECK (Age >= 18)
确保年龄不小于18岁。
5. 默认值约束(Default Constraint)
- 作用:为表中的列定义默认值,当插入记录时,如果该列没有提供值,则使用默认值。
- 用法:在创建表时,通过
DEFAULT
关键字定义。例如,Gender CHAR(1) DEFAULT 'M'
,未指定性别时默认为'M'。
6. 非空约束(Not Null Constraint)
- 作用:确保列中的值不能为NULL。
- 用法:在创建表时,通过在列定义后添加
NOT NULL
来指定。例如,Name VARCHAR(100) NOT NULL
。

了解并合理运用这些约束,可以大大提升数据库设计的合理性和数据的安全性。在设计数据库时,根据实际需求选择合适的约束,是确保数据质量的关键步骤。