当前位置:文档之家› 完整性约束分析

完整性约束分析

TEST_Course表的结构定义如下。
•表名:TEST_Course
包含的列如下:
•课号:CNO CHAR(5);
•课名:CName NVARCHAR(50);
•课时:Ctime TINYINT;
•主键:CNO;
•主键约束名:PK_TEST_Course。
(5)用SQL创建数据表TEST_TC,并以表约束形式创建PRIMARY KEY约束。
(9)ALTER TABLE TEST_TC ADD ID_TC INT IDENTITY;
(11)ALTER TABLE TEST_Course
DROP UNIQUE_CNAME
题目:(1)交互式为现有数据表Teacher创建DEFAULT约束和CHECK约束。
要求:CHECK约束对已有数据不做检查。
);
(5)CREATE TABLE TEST_TC
(TNO CHAR(5)NOT NULL,
CNO CHAR(5)NOT NULL,
CONSTRAINT PK_TEST_TC PRIMARY KEY(TNO,CNO)
);
(7)ALTER TABLE TEST_Course ADD UNIQUE(CNAME);
(8)交互式为现有表TEST_SC增加新列ID_SC,并创建此列属性为IDENTITY。
(9)用SQL为现有表TEST_TC增加新列ID_TC,并创建此列属性为IDENTITY。
(10)交互式删除现有表TEST_TC的主键PK_TEST_TC并取消ID_TC列的标识属
性。
(11)用SQL删除表TEST_Course中CNAME列的UNIQUE约束。
(3)CREATE TABLE TEST_S
(SNO CHAR(6) NOT NULL,
SNAME NVARCHAR(10)NOT NULL,
SEX NVARCHAR(1) NULL CONSTRAINT DEFAULT_SEX DEFAULT '男'
CONSTRAINT CHECK_SEX CHECK(SEX='男' OR SEX='女'),
通过外键SNO实现参照完整性约束(约束名采用系统默认):子表StudCous中SNO的
取值要参照主表Student中SNO的取值。要求:取消“创建中检查现有数据”,选择“级
联更新相关字段”。
(2)用SQL创建表Teacher与表TeacCous之间的参照关系。表Teacher与表
TeacCous通过外键TNO实现参照完整性约束FK_T_TC:子表TeacCous的取值要参照
AGE TINYINT NULL CONSTRAINT DEFAULT_AGE DEFAULT 18
CONSTRAINT CHECKT_S_AGE CHECK(AGE>=14 OR AGE<=40));
(4)ALTER TABLE Teacher
DROP CONSTRAINT CHECK_T;
题目:(1)交互式创建表Student与表StudCous之间的参照关系。表Student与表StudCous
代码:(3)ALTER TABLE Teacher
ADD PRIMARY KEY(TNO);
(4)CREATE TABLE TEST_Course
(CNO CHAR(5) CONSTRAINT PK_TEST_Course PRIMARY KEY,
CNAME NVARCHAR(50),
CTIME TINYINT,
①性别列SEX的DEFAULT约束;DEFAULT=“男”。
②PROF列与COMM列之间限定取值关系的CHECK约束。现实中的情况是:不同的
职称对应不同的岗位工资,语义规则如表7-1所示。
表7-1职称与岗位津贴
PROF(职称) COMM(岗位津贴) PROF(职称) COMM(岗位津贴)
教授6000讲师4600
副教授5400助教3500
故为Teacher表创建表达此语义规则的CHECK约束,约束名为CHECK_T。逻辑表
达式为:
(PROF=’教授’AND COMM=6000) OR
(PROF=’副教授’AND COMM=5400) OR
(PROF=’讲师’AND COMM=4600) OR
(PROF表Teacher中已有数据不做检查。
(2)用SQL为现有数据表Student创建CHECK约束。要求:本科生的年龄限制在
14-40岁之间,此约束对表Student中已有数据做检查。
(3)用SQL创建一个数据表TEST_S,包含DEFAULT和CHECK约束。表TEST_S
的结构定义如表7-2所示。
表7-2表TEST_S的结构定义
(4)用SQL删除表Teacher中列PROF和COMM之间的CHECK约束CHECK_T。
(5)交互式删除表TEST_S中列SEX的DEFAULT约束及列AGE的CHECK约束。
代码:(2)ALTER TABLE Student WITH CHECK
ADD CONSTRAINT CHECK_AGE CHECK(AGE>=14 AND AGE<=40);
主表Teacher中TNO的取值。要求:取消“创建中检查现有数据”,选择“级联删除相关
记录”。
(3)创建数据库XK007STD中5个表之间的关联关系图。5个表中存在的关联关系如
表7-3所示。
表7-3数据库MATHDB中各表之间的关联关系
(4)交互式删除表Course与表TeacCous之间的参照关系。
《数据库原理与技术》实验报告
姓名
学号
专业班级
成绩
实验报告题目
实验七完整性约束
教师评语
实验报告内容如下:(要求用查询分析器完成)
题目:(1)交互式为数据表Student创建PRIMARY KEY约束。
(2)交互式创建数据表TEST_SC,并创建PRIMARY KEY约束,TEST_SC表的结
构定义如下:
•表名:TEST_SC
包含的列如下:
•学号:SNO CHAR(6);
•课号:CNO CHAR(5);
•成绩:SCORE TINYINT;
•主键:(SNO,CNO)。
(3)用SQL为现有表Teacher在TNO列上创建PRIMARY KEY约束。
(4)用SQL创建数据表TEST_Course,并以列约束形式创建PRIMARY KEY约束。
TEST_TC表的结构定义如下。
•表名:TEST_TC.
包含的列如下:
•教师号:TNO CHAR(5);
•课号:CNO CHAR(5);
•主键:(TNO,CNO);
•主键约束名:PK_TEST_TC。
(6)交互式为现有表TEST_TC中的CNO和TNO列创建“UNIQUE约束”。
(7)用SQL为现有表TEST_Course中的CNAME列创建“UNIQUE约束”。
代码:(2)ALTER TABLE TeacCous WITH NOCHECK
ADD CONSTRAINT FK_T_TC FOREIGN KEY (TNO) REFERENCES Teacher(TNO)
ON DELETE CASCADE;
相关主题