logo资料库

数据库课程实验题目+代码.doc

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
(1)INSERT 触发器
(2)DELETE触发器
(3)UPDATE触发器
数据库原理及应用 实验指导书与教学补充材料 第一部分 实验指导书 实验二 SQL 的数据定义(表和索引) 一、实验目的 1.会使用界面工具和命令两种方法定义、修改、撤消基本表。 2.会使用界面工具和命令两种方法定义、撤消基本表的索引。 3.进一步学会使用界面工具插入、修改、删除数据。 二、实验准备及任务 1.复习 SQL 语言中数据定义的相关命令。 2.根据实验样例数据库的要求预先写好相应的命令(完整性约束可不定义, 留待实验三完成)。 (1)使用命令完成附录中实验样例数据库四张表的数据定义:学生表 Student、课程表 Course、班级表 Class、成绩表 Cj。四张表结构详见附录 一。 //创建student 表 create table student ( sno char(7) primary key not null, sname char(10) not null, ssex char(2) not null, sage smallint, clno char(5) not null ) //创建course表 安徽工程大学 计算机与信息学院 1
数据库原理及应用 实验指导书与教学补充材料 create table course ( cno char(1) not null, cname char(20) not null, credit smallint ) //创建class表 create table class ( clno char(5) primary key not null, speciality char(20) not null, inyear datetime not null, number smallint, monitor char(7) ) //创建cj表 create table cj ( sno char(7) not null, cno char(1) not null, grade decimal(4,1) ) (2)使用界面工具,在实验样例数据库中的 Student 表中添加一个新字 段:Birthday,其数据类型为日期型;使用命令为 Student 表再添加另一个 新字段:Class,其数据类型为字符型,宽度为 5,并检查结果。 //创建birthday属性 alter table student add birthday date //创建class属性 安徽工程大学 计算机与信息学院 2
数据库原理及应用 实验指导书与教学补充材料 alter table student add class char(5) (3)使用界面工具和命令,将实验样例数据库中的 Student 表中 Class 字段宽度改为 10。最后,在该表中删除 Class 和 Birthday 两个字段,并检 查结果。 (4) 先将实验样例数据库另外在磁盘上做一个备份,然后使用界面工 具,将撤消基本表 Student 表的定义,使用命令撤消基本表 Class 的定义。 (5)使用数据库附加功能,重新使用先前备份的实验样例数据库,然后 使用界面工具进行插入、修改、删除数据的操作,将实验样例数据库中的 四张表分别填满数据,为后面实验做准备,数据详见附录二。 (6)使用界面工具,为实验样例数据库中的 Student 表按学号升序建唯 一索引。 (7)使用命令,为 Course 表按课程号升序建唯一索引,为 CJ 表按学号 升序和课程号降序建唯一索引,为 CJ 表按成绩降序建聚簇索引。 //为Course表按课程号升序建唯一索引 select * from course order by cno asc //为CJ表按学号升序和课程号降序建唯一索引 select * from cj order by sno,cno desc //为CJ表按成绩降序建聚簇索引。 select * from cj order by grade desc 安徽工程大学 计算机与信息学院 3
数据库原理及应用 实验指导书与教学补充材料 (8)使用命令,删除建立的相关索引。 drop index [PK_cj] 实验三 SQL 的完整性约束定义 /*约束男女*/ ALTER TABLE [dbo].[student] with check add constraint [K_student] CHECK (([ssex]='男 ' OR [ssex]='女')) /*默认为男*/ /*ALTER TABLE [dbo].[student] with check add constraint [mr_ssex] DEFAULT ('男') FOR [ssex]*/ /*约束年龄*/ ALTER TABLE [dbo].[student] with check add constraint [student_age] check (([sage]>14 and [sage]<65)) /*外部码*/ alter table student with check add constraint [student_clno_w] foreign key([clno]) references class([clno]) /*number 的数量限制*/ alter table class with check add constraint [Number_class] check([number]>0 and ([number]<60)) /*外部码*/ alter table student with check add constraint [student_clno_wm] foreign key([clno]) references class([clno]) /*credit 的数量限制*/ ALTER TABLE course WITH CHECK ADD CONSTRAINT [CK_course] CHECK (( [credit]=(4) OR [credit]=(3) OR [credit]=(2) OR [credit]=(1))) /*主属性、外部码、级联(主码)*/ 安徽工程大学 计算机与信息学院 4
数据库原理及应用 实验指导书与教学补充材料 ALTER TABLE [dbo].[cj] ADD CONSTRAINT [PK_cj] PRIMARY KEY CLUSTERED ( ) [sno] ASC, [cno] ASC /*成绩大于 0 小于 100*/ alter table cj with check add constraint [grade_cj] check([grade]>0 and ([grade]<100)) 一、实验目的 1.掌握关系数据库的三类完整性约束定义,并领会其作用。 2.会使用界面工具定义实体完整性、参照完整性和用户自定义完整性。 3.掌握使用命令定义实体完整性、参照完整性和用户自定义完整性。 二、实验准备及任务 1.复习教材第五章完整性约束定义的相关内容。 2.根据下面要求完成实验样例数据库中提到的完整性约束定义。 (1)使用 create table 命令定义学生表 Student,同时定义该表的主 码(实体完整性)、性别取值为男或女、年龄取值为大于 14,小于 65(用 户自定义完整性。);使用 create table 命令定义课程表 Course,同时 定义该表的相关完整性约束,约束详见附录一。 //约束男女 ALTER TABLE [dbo].[student] with check add constraint [CK_student] CHECK (([ssex]=' 男' OR [ssex]='女')) //默认为男 ALTER TABLE [dbo].[student] with check add constraint [mr_ssex] DEFAULT ('男') FOR [ssex] 安徽工程大学 计算机与信息学院 5
数据库原理及应用 实验指导书与教学补充材料 //约束年龄 ALTER TABLE [dbo].[student] with check add constraint [student_age] check (([sage]>14 and [sage]<65)) //外部码 alter table student with check add constraint [student_clno_wm] foreign key([clno]) references class([clno]) (2)使用界面工具,在实验样例数据库中的定义班级表 Class 和该表的 实体完整性、参照完整性和用户自定义完整性,约束详见附录一。 //number的数量限制 alter table class with check add constraint [Number_class] check([number]>0 and ([number]<60)) (3)使用 alter table 命令定义学生表 Student 的 clno 为外码,同时 指定其违约处理方式为删除级联和更新级联,约束详见附录一。 //外部码 alter table student with check add constraint [student_clno_wm] foreign key([clno]) references class([clno]) (4)将班级表 Class 的 Credit 的 check 约束改为其在 1、2、3、4 之一 取值。 //credit的数量限制 ALTER TABLE course WITH CHECK ADD CONSTRAINT [CK_course] CHECK (( [credit]=(4) OR [credit]=(3) OR [credit]=(2) OR [credit]=(1))) (5)使用命令,完成成绩表 Cj 的定义和相关完整性约束,详见附录一。 //主属性、外部码、级联(主码) 安徽工程大学 计算机与信息学院 6
数据库原理及应用 实验指导书与教学补充材料 ALTER TABLE [dbo].[cj] ADD CONSTRAINT [PK_cj] PRIMARY KEY CLUSTERED ( ) [sno] ASC, [cno] ASC //成绩大于0小于100 alter table cj with check add constraint [grade_cj] check([grade]>0 and ([grade]<100)) (6)使用界面工具,按附录二进行插入、修改、删除数据,验证完整性 约束的效果。至少各有一种情况分别违背了三类完整性约束(如在 Cj 中 把‘2001102’同学的‘6’号课程的成绩由 83 分改为 150 分),并记录。 实验四 SQL 的数据更新 一、实验目的 1.掌握使用 SQL 语言命令进行数据的插入、修改、删除,完成数据更新。 2.进一步熟悉关系数据库的三类完整性约束的作用,运用 SQL 命令进行 数据的插入、修改、删除时,验证其约束。 二、实验准备及任务 1.复习 SQL 语言中插入、修改、删除的相关命令。 2.使用教师已经录入的相关数据的“xsglsjk”数据库,并另外准备好一些 待插入、修改、删除的数据,预先写好相应的命令。 (1)使用 insert 命令向 Student 表中插入一条新的学生纪录(2000105, 刘辉,男,20,00311)。 insert into student(sno,sname,ssex,sage,clno) values('2000105','刘辉','男','20','00311') 安徽工程大学 计算机与信息学院 7
数据库原理及应用 实验指导书与教学补充材料 (2)使用 insert 命令向 Student 表中插入一条新的学生纪录(2001105, 范冰冰,女,01311)。 insert into student(sno,sname,ssex,clno) values('2001105','范冰冰','女','00311') (3)范冰冰同学,“数据库”考了 85 分,“管理信息系统”考了 92 分, 把两门课成绩登记到数据库中。 //数据库85 insert into cj(sno,cno,grade) values('2001105','1','85') //信息管理系统 92 insert into cj(sno,cno,grade) values('2001105','3','92') (4)将学号为“2000105”的学生的班级号改为“01312”。(影响级联) update student set clno='01311' where sno='2000105' (5)将选修“6”号课程的学生成绩加 5 分。 update cj set grade=grade+5 where cno='5' (6)删除学号为“2000105”的学生记录。 delete 安徽工程大学 计算机与信息学院 8
分享到:
收藏