在 SQL 中,CHECK 约束用于定义表中的列的条件,确保满足指定的条件。CHECK 约束在插入或更新数据时检查指定的条件是否为真。如果条件为假,则操作将被拒绝。以下是使用 CHECK 约束的一些示例:

在创建表时使用 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