CHECK的简单用法

目录

1.使用域(很可能数据库不支持),下面看示例:

2.直接在字段创建时中使用

这里面还可以使用限制非空或者使用like正则,例如:

         3.表级约束创建:


约束的存在目的是根据需要,把商业规则应用到数据库的设计中。约束有唯一标识(Identifier)、非空约束(Not null)、默认值(Default Value)、检查(Check)、参照完整性(Referential Integrity),这里来说下“检查”。

1.使用域(很可能数据库不支持),下面看示例:

-- 创建“年龄”域,值限制在大于0小于150岁

CREATE DOMAIN AgeDomain AS INT2 CHECK (VALUE > 0 and VALUE < 150);

-- 创建“性别”域,值限制在未知、男、女三个中

CREATE DOMAIN GenderDomain AS CHAR(1) CHECK (VALUE IN ('U','F','M'));

-- 创建表,引用刚刚的“自定义类型”即域

CREATE TABLE CUSTOMER (

CU_SN CHAR(6) NOT NULL,

CU_NAME VARCHAR(12),

CU_AGE AgeDomain,

CU_GENDER GenderDomain

);

2.直接在字段创建时中使用

CREATE TABLE CUSTOMER (

CU_SN CHAR(6) NOT NULL,

CU_NAME VARCHAR(12),

CU_AGE INT2 NULL CONSTRAINT CKC_CUSTOMER_AGE CHECK (CU_AGE > 0 and CU_AGE < 150),

CU_GENDER CHAR(1) NULL CONSTRAINT CKC_CUSTOMER_GENDER CHECK (CU_GENDER IN ('U','F','M'))

);

进行数据插入测试:

CHECK的简单用法_第1张图片

CHECK的简单用法_第2张图片

CHECK的简单用法_第3张图片

这里面还可以使用限制非空或者使用like正则,例如:

CHECK的简单用法_第4张图片

CHECK的简单用法_第5张图片

3.表级约束创建:

CREATE TABLE CUSTOMER_4 (

CU_SN CHAR(6) NOT NULL,

CU_NAME VARCHAR(12),

CU_AGE INT2 NULL,

CU_GENDER CHAR(1) NULL,


CONSTRAINT CKC_CUSTOMER_AGE_4 CHECK (CU_AGE > 0 and CU_AGE < 150),

CONSTRAINT CKC_CUSTOMER_GENDER_4 CHECK (CU_GENDER IN ('U','F','M'))

);

-- 或者:

CREATE TABLE CUSTOMER_5 (

CU_SN CHAR(6) NOT NULL,

CU_NAME VARCHAR(12),

CU_AGE INT2 NULL,

CU_GENDER CHAR(1) NULL,


CONSTRAINT CKC_CUSTOMER_SN_5 UNIQUE(CU_SN)

);

还支持很多的用法,例如主键等,也可以建表后再修改表增加约束ALTER TABLE CUSTOMER_5

ADD CONSTRAINT CKC_CUSTOMER_SN_5 UNIQUE(CU_SN);

你可能感兴趣的:(数据库,SQL,CHECK)