主键约束确保每行数据唯一且非空,外键约束维护表间关联和数据一致性,唯一约束防止重复值,非空约束禁止NULL值,默认值约束设定字段默认内容。

在 MySQL 中,约束条件用于确保数据的完整性和一致性。通过定义约束,可以限制表中数据的取值范围或行为方式。常见的约束类型包括:主键约束、外键约束、唯一约束、非空约束和默认值约束等。
主键约束(PRIMARY KEY)
主键用于唯一标识表中的每一行数据,不允许重复且不能为 NULL。
示例:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
也可以在表创建后添加主键:
ALTER TABLE users ADD PRIMARY KEY (id);
外键约束(FOREIGN KEY)
外键用于建立两个表之间的关联,确保一个表中的字段值必须在另一个表的主键中存在。
示例:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
也可使用 ALTER 添加外键:
ALTER TABLE orders ADD CONSTRaiNT fk_user FOREIGN KEY (user_id) REFERENCES users(id);
唯一约束(UNIQUE)
确保某列或多个列的组合值在整个表中是唯一的,允许一个 NULL 值(视存储引擎而定)。
示例:
CREATE TABLE users (
email VARCHAR(100) UNIQUE
);
添加唯一约束:
ALTER TABLE users ADD UNIQUE (email);
非空约束(NOT NULL)
限制字段值不能为 NULL,常用于必填字段。
示例:
CREATE TABLE users (
name VARCHAR(50) NOT NULL
);
修改字段为非空:
ALTER TABLE users MODIFY name VARCHAR(50) NOT NULL;
默认值约束(DEFAULT)
为字段设置默认值,当插入数据时未指定该字段值,则自动使用默认值。
示例:
CREATE TABLE users (
status VARCHAR(10) DEFAULT ‘active’
);
添加默认值:
ALTER TABLE users ALTER COLUMN status SET DEFAULT ‘inactive’;
基本上就这些。合理使用约束能有效防止脏数据进入数据库,提升应用稳定性。定义时注意命名规范和索引影响,尤其是外键会自动创建索引。


