CHECK约束是一种用于限制列中数据范围的方法。它可以在创建表时使用,也可以在已有表中添加。在创建表时,可以将CHECK约束定义在列级别或表级别。在列级别,CHECK约束只适用于该列;在表级别,CHECK约束应用于整个表。
在创建表时使用CHECK约束,语法如下:
CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ... );
其中,约束定义使用关键字CONSTRAINT,紧跟着约束名称和约束条件:
- CHECK约束条件格式为 CHECK (condition),其中,condition是一种可比较的表达式。
- 约束名称是可选的,如果未指定,系统会自动为约束命名。
例如,创建一个表,其中某列只能接受值为1、2、3:
CREATE TABLE mytable ( id INT, value INT CONSTRAINT positive CHECK (value >= 0), name VARCHAR(30) CONSTRAINT ck_name CHECK (name <> '') );
还可以在已有表中添加CHECK约束,语法如下:
ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK (condition);
例如,给现有的表添加CHECK约束:
ALTER TABLE mytable ADD CONSTRAINT ck_value CHECK (value IN (1,2,3));
总之,在SQL中,可以使用CHECK约束对表的列进行数据校验,以确保只存储特定的数据。