文档详情

第6章 数据库表数据完整性应用实践.ppt

发布:2017-05-09约1.13万字共42页下载文档
文本预览下载声明
(2)创建一个表student1,包含“学号”和“出生日期”两列,出生日期必须大于1980年1月1日,并命名CHECK约束。 CREATE TABLE student1 ( 学号 char(6) NOT NULL, 出生时间 date NOT NULL, CONSTRAINT DF_student1_cjsj CHECK(出生时间1980-01-01) ) (3)创建表student2,有学号、最好成绩和平均成绩三列,要求最好成绩必须大于平均成绩。 CREATE TABLE student2 ( 学号 char(6) NOT NULL, 最好成绩 int NOT NULL, 平均成绩 int NOT NULL, CHECK(最好成绩平均成绩) ) 2.利用SQL语句在修改表时创建CHECK约束 在使用ALTER TABLE语句修改表时也能定义CHECK约束,定义和删除CHECK约束的语法格式之前已经介绍。 【强化练习】 (1)通过修改PXSCJ数据库的CJB表,增加成绩字段的CHECK约束,成绩必须在0到100之间。 USE PXSCJ GO ALTER TABLE CJB ADD CONSTRAINT cj_constraint CHECK (CJ=0 AND CJ=100) (2)删除CJB表成绩字段的CHECK约束cj_constraint。 ALTER TABLE CJB DROP CONSTRAINT cj_constraint 【强化练习】 (1)创建XSB2表(表中的列XSB表相同),并对学号字段创建PRIMARY KEY约束,对姓名字段定义UNIQUE约束。 USE PXSCJ GO CREATE TABLE XSB2 ( XH char(6) NOT NULL CONSTRAINT XH_PK PRIMARY KEY, XM char(8) NOT NULL CONSTRAINT XM_UK UNIQUE, XB bit NOT NULL DEFAULT 1, CSSJ date NOT NULL, ZY char(12) NULL, ZXF int NULL, BZ varchar(500) NULL ) (2)创建一个course_name表来记录每门课程的学生学号(XH)、姓名(XM)、课程号(KCH)、学分(XF)和毕业日期(BYRQ),其中,学号、课程号和毕业日期构成复合主键,学分为唯一键。 CREATE TABLE course_name ( XH varchar(6) NOT NULL, XM varchar(8) NOT NULL, KCH varchar(3) , XF tinyint, BYRQ date NOT NULL, PRIMARY KEY (XH, KCH, BYRQ), CONSTRAINT XF_UK UNIQUE (XF) ) (3)修改强化练习2中的XSB2表,向其中添加一个SFZHM(身份证号码)字段,对该字段定义UNIQUE约束,对CSSJ(出生时间)字段定义UNIQUE约束。 ALTER TABLE XSB2 ADD SFZHM char(20) CONSTRAINT SF_UK UNIQUE NONCLUSTERED (SFZHM) GO ALTER TABLE XSB2 ADD? CONSTRAINT CJSJ_UK UNIQUE NONCLUSTERED (CSSJ) (4)删除XSB2表中创建的PRIMARY KEY约束和UNIQUE约束。 ALTER TABLE XSB2 DROP CONSTRAINT XH_PK, XM_UK GO 1.利用SQL语句在创建表时定义外键 语法格式: CREATE TABLE 表名 ( 列定义 [ CONSTRAINT 约束名 ] [FOREIGN KEY [参照表达式] ][,…n] … [ CONSTRAINT 约束名 ] [FOREIGN KEY (列名 [ ,...n ] ) [参照表达式]] [,…n] ) 参照表达式的格式如下: 参照表达式::= REFERENCES 父表名 [ (列名 [ ,...n ] ) ] [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 定义外键时还可以指定
显示全部
相似文档