📅  最后修改于: 2023-12-03 15:05:18.240000             🧑  作者: Mango
在 SQL 中,检查约束(Check Constraint)用于强制数据列中的值符合指定的条件。它可以被用于单个数据列,也可以被用于整个表。
检查约束可以指定在插入或更新行时,检查某些条件是否满足,如果条件不满足,不允许插入或更新该行。这样可以在数据存入数据库前就过滤掉一些非法数据,保持数据的完整性和正确性。
创建检查约束可以使用 ALTER TABLE
命令,它的语法如下:
ALTER TABLE table_name
ADD CHECK (condition);
这个命令会在表 table_name
上添加一个检查约束,它会检查 condition
是否为真。
例如,我们创建一个名为 person
的表,并添加一条检查约束来限制 age
字段必须大于 0。
CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
ALTER TABLE person
ADD CHECK (age > 0);
如果我们想要修改检查约束,可以使用 ALTER TABLE
命令并指定要修改的约束的名称,然后重新指定新的条件。
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
ALTER TABLE table_name
ADD CHECK (condition);
先使用 DROP CONSTRAINT
命令删除旧的约束,然后再使用 ADD CHECK
命令来添加更新后的约束。
例如,我们想要将上面的约束的条件修改为 age > 18
。
ALTER TABLE person
DROP CONSTRAINT person_age_check;
ALTER TABLE person
ADD CHECK (age > 18);
如果我们想要删除检查约束,可以使用 ALTER TABLE
命令并指定要删除的约束的名称。
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
例如,我们想要删除上面的约束。
ALTER TABLE person
DROP CONSTRAINT person_age_check;
最后,我们来看一个更完整的示例,我们有一个名为 student
的表,它有四个字段:id
、name
、age
和 grade
。
我们想要添加三条检查约束:
age
必须大于 0;grade
必须在 0 和 100 之间;CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
grade INT
);
ALTER TABLE student
ADD CHECK (age > 0);
ALTER TABLE student
ADD CHECK (grade >= 0 AND grade <= 100);
ALTER TABLE student
ADD CHECK (age >= 18 OR grade < 60);
以上就是关于 SQL 检查约束的介绍。使用检查约束可以有效地保证数据的完整性和正确性,避免了非法数据进入数据库。