表级检查限制: CREATE tablE discounts discounttype varchar (40 NoT nUll store id char(4) NULL lowgty smallint NULL highgty smallint NULL discount float NOT NULL CONSTRAINT low high check CHECK(lowgty < highgty)) 注意: ①列级检查限制可用表级表示,表级限制也能用列级表示, 但要求在第一个列定义后; ②缺省值须满足检查限制要求; Designed by Tao Hongcai 2021年2月23日16
Designed by Tao Hongcai 2021年2月23日 16 表级检查限制: CREATE TABLE discounts ( discounttype varchar(40) NOT NULL, store_id char(4) NULL, lowqty smallint NULL, highqty smallint NULL, discount float NOT NULL, CONSTRAINT low_high_check CHECK (lowqty <= highqty)) 注意: ① 列级检查限制可用表级表示,表级限制也能用列级表示, 但要求在第一个列定义后; ② 缺省值须满足检查限制要求;
(4)主键限制 概念:不能出现空值,且所有值惟一。在定义了主键限制后, 系统自动为该表生成一个聚簇( Clustered)索引。 分类:分列级和表级两种。列级针对表中一列,表级则针对同 表中多列。 列级主键限制: CREATE TABLE publishers (pub id char(4) PRIMARYKEY pub name char(30) city varchar(20) NULL state char(2) NULL Designed by Tao Hongcai 2021年2月23日17
Designed by Tao Hongcai 2021年2月23日 17 (4)主键限制 概念:不能出现空值,且所有值惟一。在定义了主键限制后, 系统自动为该表生成一个聚簇(Clustered)索引。 列级主键限制: CREATE TABLE publishers ( pub_id char(4) PRIMARY KEY, pub_name char(30), city varchar(20) NULL, state char(2) NULL) 分类:分列级和表级两种。列级针对表中一列,表级则针对同 一表中多列
表级主键限制: CREATE TABLE Sales stor_id char(4 NOT NULI date datetime NOT NULL ord num varchar(20 NOT NULL CONSTRAINT pk sales _ consti PRIMARYKEY NONCLUSTERED (stor_id, ord_ num)) (5)唯一限制 自砂为心:主要是针对候选鍵的眼制。在定义了惟一限制后,系统 该表生成一个非聚簇索引,当然在定义时可改成聚簇索引。 与主键限制之区别:所有值惟一,最多只能有一个空值。默认 索引为非聚簇( Nonclustered)索引。 分类:分列级和表级两种。列级针对表中一列,表级则针对同 表中多列。 Designed by Tao Hongcai 2021年2月23日18
Designed by Tao Hongcai 2021年2月23日 18 表级主键限制: CREATE TABLE sales ( stor_id char(4) NOT NULL, date datetime NOT NULL, ord_num varchar(20) NOT NULL, CONSTRAINT pk_sales_constr PRIMARY KEY NONCLUSTERED (stor_id,ord_num)) (5)唯一限制 概念:主要是针对候选键的限制。在定义了惟一限制后,系统 自动为该表生成一个非聚簇索引,当然在定义时可改成聚簇索引。 分类:分列级和表级两种。列级针对表中一列,表级则针对同 一表中多列。 与主键限制之区别:所有值惟一,最多只能有一个空值。默认 索引为非聚簇(NonClustered)索引
列级唯一限制: CREATE TABLE publishers (pub id char(4) UNIQUE pub name char(30)) 表级唯一限制: CREATE TABLE Sales (stor_ id char(4) NOT NULL ord num varchar(20) NOT NUll date datetime NOT NULL CONSTRAINT ug_sales_ constr UNIQUE CLUSTERED(stor_ id, ord_ num)) Designed by Tao Hongcai 2021年2月23日19
Designed by Tao Hongcai 2021年2月23日 19 列级唯一限制: CREATE TABLE publishers ( pub_id char(4) UNIQUE, pub_name char(30)) 表级唯一限制: CREATE TABLE sales ( stor_id char(4) NOT NULL, ord_num varchar(20) NOT NULL, date datetime NOT NULL, CONSTRAINT uq_sales_constr UNIQUE CLUSTERED (stor_id,ord_num))
(6)外键限制 两个通过外键联系的表的三种操作对完整性的影响: ①对含主键的表(亦称主表,即:该表的主键将作为另一张 表的外键)的主键做操作 ★插入:要求插入值满足主键限制即可,不影响其它表。 ★修改:可能会影响与该主键相关的从表的外键值。当相应的外 键值存在时,有两个策略可用:一是改变对应从表的所有外键值,使之 与主键一致;其二是不允许修改主表中的主键值。 ★删除:可能会影响与该主键相关的从表的外键值。若相应的外 键值存在时,策略有二:一是不允许删除主表的主键值;二是级联删除 从表中相应外键值所在的行。 ②对含外键的表(亦称从表) ★插入:要求插入的外键值应“参照”( Reference)主表中的主 键值 Designed by Tao Hongcai 2021年2月23日20
Designed by Tao Hongcai 2021年2月23日 20 (6)外键限制 两个通过外键联系的表的三种操作对完整性的影响: ★插入:要求插入值满足主键限制即可,不影响其它表。 ★修改:可能会影响与该主键相关的从表的外键值。当相应的外 键值存在时,有两个策略可用:一是改变对应从表的所有外键值,使之 与主键一致;其二是不允许修改主表中的主键值。 ① 对含主键的表(亦称主表,即:该表的主键将作为另一张 表的外键)的主键做操作 ★删除:可能会影响与该主键相关的从表的外键值。若相应的外 键值存在时,策略有二:一是不允许删除主表的主键值;二是级联删除 从表中相应外键值所在的行。 ② 对含外键的表(亦称从表) ★插入:要求插入的外键值应“参照”(Reference)主表中的主 键值