数据库约束权威指南:掌握正确写法,确保数据完整与规范

文章导读
数据库约束是确保数据完整性和规范性的关键机制。正确写法包括PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL、CHECK和DEFAULT约束。示例:CREATE TABLE users (id INT PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, age INT CHECK (age >= 0), status
📋 目录
  1. A 主键约束
  2. B 外键约束
  3. C 唯一约束
  4. D 非空约束
  5. E 检查约束
  6. F 默认值约束
  7. G 约束最佳实践
A A

数据库约束是确保数据完整性和规范性的关键机制。正确写法包括PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL、CHECK和DEFAULT约束。示例:CREATE TABLE users (id INT PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, age INT CHECK (age >= 0), status ENUM('active','inactive') DEFAULT 'active');

主键约束

主键约束用于唯一标识表中的每一行数据,确保没有重复或NULL值。语法:column_name data_type PRIMARY KEY。好处:加速查询,提高数据一致性。例如,在用户表中,id字段设为主键:ALTER TABLE users ADD PRIMARY KEY (id);

外键约束

外键约束建立表与表之间的引用完整性。语法:FOREIGN KEY (column) REFERENCES parent_table(parent_column)。例如,orders表中的user_id引用users表的id:FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE; 这确保订单只能属于存在的用户。

唯一约束

唯一约束确保列中所有值唯一,但允许NULL。语法:column_name data_type UNIQUE。例如,email字段:email VARCHAR(100) UNIQUE; 防止用户重复注册相同邮箱。

数据库约束权威指南:掌握正确写法,确保数据完整与规范

非空约束

NOT NULL约束禁止列中插入NULL值。语法:column_name data_type NOT NULL。例如,username VARCHAR(50) NOT NULL; 确保用户名必须填写。

检查约束

CHECK约束自定义业务规则。语法:column_name data_type CHECK (condition)。例如,salary DECIMAL(10,2) CHECK (salary > 0); 防止负薪资。

数据库约束权威指南:掌握正确写法,确保数据完整与规范

默认值约束

DEFAULT提供列的默认值。语法:column_name data_type DEFAULT value。例如,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 自动记录创建时间。

约束最佳实践

1. 优先使用主键。2. 外键添加索引。3. CHECK约束简单明了。4. 适度使用,避免过度约束影响性能。5. 测试约束在开发阶段。

FAQ
Q: 主键和唯一约束区别?
A: 主键不允许NULL且只有一个,唯一允许NULL且可多个。
Q: 外键删除级联怎么用?
A: ON DELETE CASCADE自动删除子表记录。
Q: 如何删除约束?
A: ALTER TABLE table_name DROP CONSTRAINT constraint_name;
Q: MySQL和PostgreSQL约束差异?
A: PostgreSQL CHECK更强大,MySQL部分存储引擎不支持。