约束类型:在定义完整性约束时必须指定完整性约束的类型 在 SQL SERⅤER中可以定义五种类型的完整性约束,下面分 别加以介绍: (1 NULL/NOT NULL 是否允许该字段的值为NULL。 NULL值不是0也不是空白,更不是填入字符串“NULL, 而是表示“不知道”、“不确定”或“没有数据”的意思 当某一字段的值一定要输入才有意义的时候,则可以设置 为 NOT NULL。 如主键列就不允许出现空值,否则就失去了唯一标识一条 记录的作用 只能用于定义列约束, 其语法格式如下: ICONSTRAINT<约束名> NULLNOT NULL UA++ 回D
返回 26 ➢ 约束类型:在定义完整性约束时必须指定完整性约束的类型。 ➢ 在SQL SERVER中可以定义五种类型的完整性约束,下面分 别加以介绍: (1)NULL/NOT NULL ➢ 是否允许该字段的值为NULL。 ➢ NULL值不是0也不是空白,更不是填入字符串“NULL”, 而是表示“不知道”、“不确定”或“没有数据”的意思。 ➢ 当某一字段的值一定要输入才有意义的时候,则可以设置 为NOT NULL。 ➢ 如主键列就不允许出现空值,否则就失去了唯一标识一条 记录的作用 ➢ 只能用于定义列约束, ➢ 其语法格式如下: [CONSTRAINT <约束名> ][NULL|NOT NULL]
例35建立一个S表,对SNO字段进行 NOTNULL约 USE STUDENT CREATE TABLE S (SNO CHAR(IO) CONSTRAINT S CONS NOT NULL SN VARCHAR(2O) AGE INT SEX CHAR(2) DEFAULT男 DEPT VARCHAR(20)) 当SNO为空上时,系统给出错误信息,无 NOTNULL 约束时,系统缺省为NULL。 其中 S CONS为指定的约束名称,当约束名称省略时, 系统自动产生一个名字。如下列功能同上,只是省略 约束名称。 U0回
返回 27 例3.5 建立一个S表,对SNO字段进行NOT NULL约束。 USE STUDENT CREATE TABLE S (SNO CHAR(10) CONSTRAINT S_CONS NOT NULL, SN VARCHAR(20), AGE INT, SEX CHAR(2) DEFAULT ’男’ , DEPT VARCHAR(20)); ➢ 当SNO为空上时,系统给出错误信息,无NOT NULL 约束时,系统缺省为NULL。 ➢ 其中S_CONS为指定的约束名称,当约束名称省略时, 系统自动产生一个名字。如下列功能同上,只是省略 约束名称
(2) UNIQUE约束 > UNIQUE约束用于指明基本表在某一列或多个列的组合土 的取值必须唯 定义了 UNIQUE约束的那些列称为唯一键,系统自动为唯 键建立唯一索引,从而保证了唯一键的唯一性。 唯一键允许为空,但系统为保证其唯一性,最多只可以出 现一个NULL值。 UNIQUE既可用于列约束,也可用于表约束。 UNIQUE用于定义列约束时,其语法格式如下: CONSTRAINT<约束名> UNIQUE 例36建立一个S表,定义SN为唯一键。 USE STUDENT CREATE TABLE S (SNO CHAR(6 SN CHAR(&) CONSTRAINT SN UNIQ UNIQUE SEX CHAR(2) AGE NUMERICO2D ◆“回
返回 28 (2)UNIQUE约束 ➢ UNIQUE约束用于指明基本表在某一列或多个列的组合上 的取值必须唯一。 ➢ 定义了UNIQUE约束的那些列称为唯一键,系统自动为唯 一键建立唯一索引,从而保证了唯一键的唯一性。 ➢ 唯一键允许为空,但系统为保证其唯一性,最多只可以出 现一个NULL值。 ➢ UNIQUE既可用于列约束,也可用于表约束。 ➢ UNIQUE用于定义列约束时,其语法格式如下: [CONSTRAINT <约束名>] UNIQUE ➢ 例3.6 建立一个S表,定义SN为唯一键。 USE STUDENT CREATE TABLE S (SNO CHAR(6), SN CHAR(8) CONSTRAINT SN_UNIQ UNIQUE, SEX CHAR(2), AGE NUMERIC(2));
>其中 SN UNIQ为指定的约束名称,约束名称可以省略, 如下例: USE STUDENT CREATE TABLE S (SNO CHAR(6), sn CHAR(& UNIQUE SEX CHAR(2) AGE NUMERIC(2)) > UNIQUE用于定义表约束时,其语法格式如下 CONSTRAINT<约束名 UNIQUE(<列名>[列名>}) U0回 29
返回 29 ➢ 其中SN_UNIQ为指定的约束名称,约束名称可以省略, ➢ 如下例: USE STUDENT CREATE TABLE S (SNO CHAR(6), SN CHAR(8) UNIQUE, SEX CHAR(2), AGE NUMERIC(2)); ➢ UNIQUE用于定义表约束时,其语法格式如下: [CONSTRAINT <约束名>] UNIQUE(<列名>[{,<列名>}])
例3.7建立一个S表,定义SN+SEX为唯一键。 USE STUDENT CREATE TABLE S SNO CHAR(5) SN CHAR(8) SEX CHAR(2) CONSTRAINT S UNIQ UNIQUE(SN SEXD); 系统为SN+SEX建立唯一索引,确保同一性别的学生 没有重名。 (3) PRIMARY KEY约束 > PRIMARY KEY约束用于定义基本表的主键,起唯 标识作用,其值不能为NULL,也不能重复,以此来 保证实体的完整性。 U0回
返回 30 例3.7 建立一个S表,定义SN+SEX为唯一键。 USE STUDENT CREATE TABLE S ( SNO CHAR(5), SN CHAR(8), SEX CHAR(2), CONSTRAINT S_UNIQ UNIQUE(SN,SEX)); ➢ 系统为SN+SEX建立唯一索引,确保同一性别的学生 没有重名。 (3)PRIMARY KEY约束 ➢ PRIMARY KEY约束用于定义基本表的主键,起唯一 标识作用,其值不能为NULL,也不能重复,以此来 保证实体的完整性