令关于完整性约束条件,需要说明以下几点: 完整性约束条件分为列级完整性约束条件和表级完整性约束条件,它 们之间的区别在于:列级完整性约束条件只能用于列,而表级完整性 约束条件能够用于一张表中的多列。 SQL的完整性约束条件有以下几种 NOT NULL或NULL约束 这个约束条件为列级完整性约束条件。 NOT NULL为不 允许该列存在空值,而NUL为允许该列存在空值。 UNIQUE约束 UNIQUE约束是惟一性约束。即不允许表中的某一列或者 某几列有重复的属性值 DEFAULT约束 DEFAULT约束为默认值约束,是列级完整性约束条件。 当向表中插入一个新行时,如果对于特定列没有指定数值, 则使用 DEFAULT子句指定的默认值。 2021/1/21
第3章 关系数据库标准语言SQL 2021/1/21 ❖ 关于完整性约束条件,需要说明以下几点: ▪ 完整性约束条件分为列级完整性约束条件和表级完整性约束条件,它 们之间的区别在于:列级完整性约束条件只能用于列,而表级完整性 约束条件能够用于一张表中的多列。 ▪ SQL的完整性约束条件有以下几种: • NOT NULL 或NULL约束 这个约束条件为列级完整性约束条件。NOT NULL 为不 允许该列存在空值,而NULL 为允许该列存在空值。 • UNIQUE约束 UNIQUE约束是惟一性约束。即不允许表中的某一列或者 某几列有重复的属性值。 • DEFAULT约束 DEFAULT约束为默认值约束,是列级完整性约束条件。 当向表中插入一个新行时,如果对于特定列没有指定数值, 则使用DEFAULT子句指定的默认值
CHECK约束 CHECK约束是检验约束,为插入列中的数据指定约束条件 PRIMARY KEY约束 PRIMARY KEY约束即主键约束,是表级完整性约束条件。 表中的主键可以是一列或列组, PRIMARY KEY约束可以使得 主键的数值在每一行中各不相同。 注意: PRIMARY KEY约束类似于 UNIQUE约束,差别在于 PRIMARY KEY约束中的列不可以为空 FOREIGN KEY约束 FOREIGN KEY约束是参照完整性约束,是用于约束外键的, 也是表级完整性约束条件。 2021/1/21
第3章 关系数据库标准语言SQL 2021/1/21 • CHECK约束 CHECK约束是检验约束,为插入列中的数据指定约束条件。 • PRIMARY KEY 约束 PRIMARY KEY 约束即主键约束,是表级完整性约束条件。 表中的主键可以是一列或列组,PRIMARY KEY 约束可以使得 主键的数值在每一行中各不相同。 注意:PRIMARY KEY 约束类似于UNIQUE约束,差别在于 PRIMARY KEY约束中的列不可以为空。 • FOREIGN KEY约束 FOREIGN KEY约束是参照完整性约束,是用于约束外键的, 也是表级完整性约束条件
【例3-3】创建“学生表” student,它由学号id、姓名name、性 别sex、班级号 class、出生日期 birthday等5个属性组成。其中 学号不能为空,值必须惟一,且姓名也必须惟一和非空 CREATE TABLE Student ( id CHAR (8)NOT NULL UNIQUE name VARCHAR (20) NOT NULL UNIQUE sex CHAR(1) DEFAULT男’ NOT NULL, class CHAR (4) birthday date, sum int constraint c2 check sum 2000 CONSTRAINT C1 CHECK(sex IN( 女’) 2021/1/21
第3章 关系数据库标准语言SQL 2021/1/21 【例3-3】创建“学生表”student,它由学号id、姓名name、性 别sex、班级号class、出生日期birthday等5个属性组成。其中 学号不能为空,值必须惟一,且姓名也必须惟一和非空。 CREATE TABLE student ( id CHAR(8) NOT NULL UNIQUE, name VARCHAR(20) NOT NULL UNIQUE, sex CHAR(1) DEFAULT ‘男’ NOT NULL, class CHAR(4), birthday DATE, sum int constraint c2 check sum<2000, CONSTRAINT C1 CHECK (sex IN (‘男’ , ‘女’)));
【例3-4】创建“班级信息表” class,它由班级号id、班级名name、 班长 moni tor等3个属性组成,其中班级号是主键,班长是外键,它 是【例3-3】学生表中学号的某个值 CREATE TABLE Class id CHAR(4)NOT NULL name VARCHAR(50) NOT NULL monitor CHAR(8) CoNSTRAINT C2 PRIMARY KEY (id) CONSTRAINT C3 FOREIGN KEY(monitor REFERENCES Student(id)) 说明:本例定义了2个列级约束、2个表级约束。 CONSTRAINT子句 定义的是表级约束,C2、C3是约束名,分别将id定义为主键, moni tor定义为外键。 2021/1/21
第3章 关系数据库标准语言SQL 2021/1/21 【例3-4】创建“班级信息表”class,它由班级号id、班级名name、 班长monitor等3个属性组成,其中班级号是主键,班长是外键,它 是【例3-3】学生表中学号的某个值。 CREATE TABLE class ( id CHAR(4) NOT NULL , name VARCHAR(50) NOT NULL , monitor CHAR(8) CONSTRAINT C2 PRIMARY KEY(id), CONSTRAINT C3 FOREIGN KEY(monitor) REFERENCES student(id)); 说明:本例定义了2个列级约束、2个表级约束。CONSTRAINT子句 定义的是表级约束,C2、C3是约束名,分别将id定义为主键, monitor定义为外键
令删除基本表 当某个基本表不再需要时,可以使用 DROP TABLE语句将它删 除。其一般语法为: DROP TABLE〈表名>; 【例3-5】删除 student表 DROP TABLE Student 该语句一旦执行,基本表的定义、数据、此表上建立的索引和 视图都将自动被删除掉 2021/1/21
第3章 关系数据库标准语言SQL 2021/1/21 ❖ 删除基本表 当某个基本表不再需要时,可以使用DROP TABLE 语句将它删 除。其一般语法为: DROP TABLE <表名>; 【例3-5】删除student表。 DROP TABLE student; 该语句一旦执行,基本表的定义、数据、此表上建立的索引和 视图都将自动被删除掉