4.4.3 CHECK约束

CHECK约束是检查约束,能够规定每一个列能够输入的值,以保证数据的正确性。下面就详细讲解CHECK约束的使用。

(1)创建表时添加CHECK约束

创建CHECK约束可以设置在“性别”列中只能输入男或者女,在“年龄”列中只能输入18~30岁的年龄。创建CHECK约束的语句是在创建表的语句后面加上如下语句完成的:


CONSTRAINT constraint_name CHECK(condition);


其中,condition是检查约束的条件,检查约束的条件要建立在具体的字段中。例如,给字段Age设置为18~30岁,就可以写成age>=18 and age<=30。

下面创建一个顾客信息表,顾客信息表主要包括顾客编号、顾客姓名、顾客年龄、顾客性别、顾客电话、顾客住址6个字段信息。顾客信息表的详细信息如表4.7所示。

4.4.3 CHECK约束 - 图1

根据表4.7所示的顾客信息表的信息,创建顾客信息表,并设置Age列的取值范围是18~50岁。具体操作如图4.17所示。

4.4.3 CHECK约束 - 图2

图 4.17 创建Age列的检查约束

这样就完成了年龄字段中检查约束的创建,在年龄的字段中只能输入18~50的数字,输入其他的数字就会出现错误。

(2)在修改数据表时添加CHECK约束

在修改数据表时添加检查约束的方法也比较简单,在ALTER TABLE语句的后面添加如下语句即可:


ADD CONSTRAINT constraint_name CHECK(condition);


下面利用上面语句为顾客信息表添加性别列的检查约束,要求性别列只能输入“男”或者“女”。具体操作如图4.18所示。

4.4.3 CHECK约束 - 图3

图 4.18 添加Gender列的检查约束

这样就完成了Gender性别列检查约束的添加,也可以同时添加多个检查约束。

(3)移除CHECK约束

移除CHECK约束也与移除其他约束一样,只要知道CHECK约束的名字,就可以移除CHECK约束,下面就移除在顾客信息表中Gender列的检查约束chk_gender。具体语句如下:


ALTER TABLE custominfo

DROP CONSTRAINT chk_gender;


这样,就可以移除CHECK约束chk_gender。