在创建表时使用 CHECK:
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(255),
product_price DECIMAL(10, 2) CHECK (product_price > 0),
product_quantity INT CHECK (product_quantity >= 0)
);
在这个例子中,CHECK 约束用于确保 product_price 大于 0,以及 product_quantity 大于或等于 0。
在修改表时添加 CHECK 约束:
-- 在已有的表中添加 CHECK 约束
ALTER TABLE products
ADD CONSTRAINT chk_positive_price CHECK (product_price > 0);
这里使用 ALTER TABLE 语句为已有的表 products 添加 CHECK 约束。
CHECK 约束的应用场景:
- 值的范围限制: 通过 CHECK 约束,可以限制列的值必须满足某个范围或条件。
- 避免无效的数据: CHECK 约束有助于确保表中的数据符合特定规范,避免插入或更新无效的数据。
- 数据完整性: 通过 CHECK 约束,可以维护表的数据完整性,确保数据符合业务规则。
多条件的 CHECK 约束:
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(255),
employee_age INT CHECK (employee_age >= 18 AND employee_age <= 65),
employee_gender CHAR(1) CHECK (employee_gender IN ('M', 'F'))
);
在这个例子中,employee_age 列的值必须在 18 到 65 之间,employee_gender 列的值必须是 'M' 或 'F'。
CHECK 约束为数据库添加了额外的数据完整性,确保数据满足预期的业务规则。
转载请注明出处:http://www.zyzy.cn/article/detail/3348/SQL