SQL 中的 CHECK 约束是一种数据完整性规则,用于限制表中列的有效值范围。它确保列中的数据满足特定的条件或规则,从而防止插入无效或不一致的数据。
CHECK 约束的语法
CHECK 约束的语法如下:
ALTER TABLE table_name
ADD CHECK (column_name condition);
其中:
table_name
是要添加 CHECK 约束的表名称。
column_name
是要应用 CHECK 约束的列名称。
condition
是指定列值的条件或规则。
CHECK 约束的优点
使用 CHECK 约束具有一些优点:
**确保数据完整性:**它有助于防止在表中插入不符合指定条件的数据。
**提高数据的准确性和可靠性:**通过限制列中可能的值,CHECK 约束可以确保数据的一致性和准确性。
**简化数据验证:**CHECK 约束可以自动执行数据验证,减少对应用程序或触发器的依赖。
CHECK 约束的注意事项
在使用 CHECK 约束时需要注意以下事项:
**影响性能:**CHECK 约束可能会对表插入和更新操作的性能产生轻微影响。
**无法约束 NULL 值:**CHECK 约束不能对 NULL 值进行限制。
**可以被覆盖:**某些情况下,可以通过使用 INSERT 或 UPDATE 语句中的 IGNORE 选项来覆盖 CHECK 约束。
示例
-- 创建一个名为 "employees" 的表
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(255) NOT NULL,
salary NUMERIC(10, 2) NOT NULL,
CHECK (salary >= 10000 AND salary <= 100000)
);
在这个示例中,CHECK 约束确保 salary
列中的值介于 10000 和 100000 之间,从而防止插入无效的工资数据。