MySQL中如何创建约束:完整指南与实用示例
在MySQL中,创建约束主要通过数据定义语言(DDL)在创建或修改表时实现,用于确保数据的完整性和一致性。约束主要包括主键约束、外键约束、唯一约束、非空约束和检查约束,每种约束都有其特定的语法和应用场景。
主键约束(PRIMARY KEY)
主键用于唯一标识表中的每一行,且不允许为空,创建表时可通过以下方式定义:

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL
);
若需为现有表添加主键,可使用:
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)
);
注意:外键要求关联字段的数据类型必须一致,且InnoDB引擎支持外键功能。
唯一约束(UNIQUE)
确保某列或列组合的值唯一,但允许为空,示例:
CREATE TABLE products (
product_code VARCHAR(10) UNIQUE,
name VARCHAR(100)
);
非空约束(NOT NULL)
强制列不允许存储NULL值,通常在字段定义时直接指定:
CREATE TABLE employees (
email VARCHAR(100) NOT NULL
);
检查约束(CHECK)
从MySQL 8.0.16版本开始支持,用于限制列值的范围,限制年龄必须大于0:
CREATE TABLE students (
age INT CHECK (age > 0)
);
实用建议:
- 使用约束前需明确业务规则,避免过度约束影响性能。
- 可通过
SHOW CREATE TABLE 表名查看已定义的约束。 - 修改约束时,部分操作可能需要先删除再重新添加。
通过合理应用约束,能有效提升数据库的可靠性和数据质量,减少脏数据产生的风险。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/12249.html发布于:2026-08-21





