




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上中南大学 数据库实验报告学 号 学生姓名 吕 小 布 指导教师 刘安丰 学 院 信息科学与工程 专业班级 计算机科学与技术1306班 完成时间 2015年6月19日 目 录数据库实验一【实验项目一】数据表, 索引, 视图创建, 修改,删除的设计与完整性约束实验室名称实验室地点学时2实验类型验证性每组人数1选做或必做必做实验目的(1)掌握数据表设计的具体细节操作。(2)掌握primary key 、check、default, references 等约束的应用。内容提要实现数据表的创建,并使用primary key 、check、default, references
2、 等约束。重点难点primary key 、check、default, references 等约束。主要仪器及耗材计算机一、实验内容(一)创建以下六张表,有如下要求: 本次实验100分1)创建这6个表(20分)。1)用不同的方法创建约束;2)查看和删除约束;(3)创建、删除默认和规则 (3*5分)1)掌握主键约束的特点和用法;2)掌握惟一性约束的用法;3)掌握默认约束和默认对象的用法;4)掌握CHECK约束和规则对象的用法;5)掌握利用主键与外键约束实现参照完整性的方法(5*5分)。1)增加一个字段;2)删除一个字段; 3)增加一个约束; 4)修改字段的数据类型(4*5分);1)创建索引;
3、2)重建索引(2*5分)。1) 创建视图; 2)删除视图(2*5分)。表结构按照显示的数据由读者自行设定,并按下表显示的数据录入至相关表中。读者信息表 借书证号 姓名 性别出生日期 借书量 工作单位 电话 E-mail张晓露女1989-02-12管理信息系zxl李阳男 1988-12-26 1航海系ly王新全男 1988-04-25 1人文艺术系 wxq张继刚男 1989-08-18 1轮机工程系 zjg顾一帆男 1981-12-30 轮机工程系 gyf借还明细表 借书证号图书编号借/还借书日期还书日期数量工号还2008-03-282008-04-141借2008-04-271借2008-04
4、-271借2008-04-281还2008-04-292008-05-091借2008-05-101借2008-05-111图书类别 类别号图书类别H31英语I267当代作品TP312程序语言TP393计算机网络U66船舶工程图书借阅明细表 图书编号图书名称借书证号借出日期归还日期库存数文化苦旅2008-04-2714航海英语2008-04-2724C+程序设计语言2008-04-2814艺海潮音2008-05-1018艺海潮音2008-05-1117工作人员 工号姓名性别出生日期联系电话E-mail周学飞男1971-05-03zxf李晓静女1979-09-15lj顾彬男1972-04-25g
5、b陈欣女1968-11-03cx图书明细表 类别号图书编号图书名称作者出版社定价购进日期购入数复本数库存数I267文化苦旅余秋雨知识出版社162000-03-1981514TP312Delphi高级开发指南坎图电子工业出版社802000-03-19151515U66船舶制造基础杨敏国防工业出版社192001-07-15202020I267艺海潮音李叔江苏文艺出版社192007-04-12152018TP312C+程序设计成颖东南大学出版社382007-05-08101514H31航海英语陈宏权武汉工业大学出版社422007-10-20252524H31大学英语学习辅导姜丽蓉北京理工大学出版社2
6、3.52008-02-06252525TP393网络工程实用教程汪新民北京大学出版社34.82008-08-21101515二、实验准备数据库管理软件选择Microsoft SQL server 2008.安装完成后,软件界面如下。图1.1、Microsoft SQL server 2008三、实验过程 编写SQL语句并调试运行。1、创建表首先创建读者信息表。create table 读者信息表(借书证号 int, 姓名 char(10),性别 char(2),出生日期 date,借书量 smallint,工作单位 char(20),电话 char(10),Email char(20) )Go
7、然后运行select * from 读者信息表语句。结果如下:图2.创建表1其他表的创建过程与之类似。创建结果如下图:图1.3.创建表22、 创建和修改约束为第一个表创建约束:create table 读者信息表(借书证号 int primary key, -主码姓名 char(10) not null,性别 char(2) default '男',出生日期 date,借书量 smallint CHECK (借书量 between 0 and 100),工作单位 char(20),电话 char(10),Email char(20) )3、 创建索引和视图create uniq
8、ue index 图书索引 on 图书明细表(图书编号)drop index 图书索引 on 图书明细表;create view 图书馆 as select 工号,姓名,联系电话 from 工作人员;4、 源代码drop table 读者信息表drop table 借还明细表drop table 图书类别drop table 图书借阅明细表drop table 工作人员drop table 图书明细表create table 读者信息表(借书证号 int primary key, -主码姓名 char(10) not null,性别 char(2) default '男',出生
9、日期 date,借书量 smallint CHECK (借书量 between 0 and 100),工作单位 char(20),电话 char(10),Email char(20) )gocreate table 借还明细表(借书证号 int not null,图书编号 char(10),借还 char(2),借书日期 date,还书日期 date,数量 smallint,工号 char(10), )gocreate table 图书类别(类别号 char(8),图书类别 char(10),)gocreate table 图书借阅明细表(图书编号 char(8),图书名称 char(20),
10、借书证号 int,借出日期 date,归还日期 date,库存数 int,-foreign key(借书证号) references 读者信息表(借书证号),)gocreate table 工作人员(工号 int primary key, -主码姓名 char(10) not null,性别 char(2),出生日期 date,联系电话 char(10),Email char(20) )gocreate table 图书明细表(类别号 char(8),图书编号 char(8) primary key,图书名称 char(20),作者 char(10),出版社 char(20),定价 decim
11、al(5,2),购进日期 date,购入数 smallint,复本数 smallint,库存数 smallint,)insert into 读者信息表 values(,'张晓露','女','1989-02-01',2,'管理信息系','zxl');insert into 读者信息表 values(,'李阳','男' ,'1988-12-26', 1,'航海系','ly');insert into 读者信息表 values(,'王
12、新全','男', '1988-04-25', 1,'人文艺术系', ,'wxq');insert into 读者信息表 values(,'张继刚','男' ,'1989-08-18', 1,'轮机工程系', ,'zjg');insert into 读者信息表 values(,'顾一帆','男', '1981-12-30','','轮机工程系', ,'gyf&
13、#39;);go -空的数据怎样插入?insert into 借还明细表 values(,'','还','2008-03-28','2008-04-14',1,'');insert into 借还明细表 values(,'','借','2008-04-27',NULL,1,'');insert into 借还明细表 values(,'','借','2008-04-27',NULL,1,''
14、);insert into 借还明细表 values(,'','借','2008-04-28',NULL,1,'');insert into 借还明细表 values(,'','还', '2008-04-29','2008-05-09',1,'');insert into 借还明细表 values(,'','借','2008-05-10',NULL,1,'');insert into 借还
15、明细表 values(,'','借','2008-05-11',NULL,1,'');insert into 图书类别 values('H31','英语');insert into 图书类别 values('I267','当代作品');insert into 图书类别 values('TP312','程序语言');insert into 图书类别 values('TP393','计算机网络');inser
16、t into 图书类别 values('U66','船舶工程');insert into 图书借阅明细表 values('','文化苦旅','2008-04-27',NULL,14);insert into 图书借阅明细表 values('','航海英语','2008-04-27',NULL,24);insert into 图书借阅明细表 values('','C+程序设计语言','2008-04-28',NULL,14
17、);insert into 图书借阅明细表 values('','艺海潮音','2008-05-10',NULL,18);insert into 图书借阅明细表 values('','艺海潮音','2008-05-11',NULL,17);insert into 工作人员 values('','周学飞','男','1971-05-03','','zxf');insert into 工作人员 values(
18、'','李晓静','女','1979-09-15','','lj');insert into 工作人员 values('','顾彬','男','1972-04-25','','gb');insert into 工作人员 values('','陈欣','女','1968-11-03','','cx');inser
19、t into 图书明细表 values('I267','','文化苦旅', '余秋雨', '知识出版社',16,'2000-03-19',8,15,14);insert into 图书明细表 values('TP312','','Delphi高级开发指南','坎图','电子工业出版社',80,'2000-03-19',15,15,15);insert into 图书明细表 values('U66&
20、#39;,'','船舶制造基础','杨敏','国防工业出版社',19,'2001-07-15',20,20,20);insert into 图书明细表 values('I267','','艺海潮音','李叔', '江苏文艺出版社',19,'2007-04-12',15,20,18);insert into 图书明细表 values('TP312','','C+程序设计',&
21、#39;成颖','东南大学出版社',38,'2007-05-08',10,15,14);insert into 图书明细表 values('H31','','航海英语','陈宏权','武汉工业大学出版社',42,'2007-10-20',25,25,24);insert into 图书明细表 values('H31','','大学英语学习辅导','姜丽蓉','北京理工大学出版社',
22、23.5,'2008-02-06',25,25,25);insert into 图书明细表 values('TP393','','网络工程实用教程','汪新民','北京大学出版社',34.8,'2008-08-21',10,15,15);select * from 读者信息表select * from 借还明细表select * from 图书类别select * from 图书借阅明细表select * from 工作人员select * from 图书明细表create uniq
23、ue index 图书索引 on 图书明细表(图书编号)drop index 图书索引 on 图书明细表;create view 图书馆 as select 工号,姓名,联系电话 from 工作人员;数据库实验二【实验项目二】实验室名称实验室地点学时2实验类型验证性每组人数1选做或必做必做实验目的(1)掌握SQL 语言的编写。(2)掌握视图的创建。 内容提要使用SQL 语言完成所要求的数据查询与更新,并使用SQL 语言完成视图的创建。重点难点使用SQL 语言完成数据的查询与更新。主要仪器及耗材计算机一、实验要求本次实验共100分,做对一个给4分。以随机抽查现场做为准设如下四个表,先创建表, 插
24、入数据, 然后做后面的查询:student (学生信息表)sno sname sex birthday class108 曾华男09/01/77 95033105 匡明男10/02/75 95031107 王丽女01/23/76 95033101 李军男02/20/76 95033109 王芳女02/10/75 95031103 陆军男06/03/74 95031teacher(老师信息表)tno tname sex birthday prof depart804 李诚男12/02/58 副教授计算机系856 李旭男03/12/69 讲师电子工程系825 王萍女05/05/72 助教计算机系8
25、31 刘冰女08/14/77 助教电子工程系course(课程表)cno cname tno3-105 计算机导论8253-245 操作系统8046-166 数字电路8569-888 高等数学825score(成绩表)sno cno degree103 3-245 86105 3-245 75109 3-245 68103 3-105 92105 3-105 88109 3-105 76101 3-105 64107 3-105 91108 3-105 78101 6-166 85107 6-166 79108 6-166 81请写出下列查询语句并给出结果1、列出student表中所有记录的s
26、name、sex和class列。答案2、显示教师所有的单位即不重复的depart列。3、显示学生表的所有记录。4、显示score表中成绩在60到80之间的所有记录。5、显示score表中成绩为85,86或88的记录。6、显示student表中“95031”班或性别为“女”的同学记录。7、以class降序显示student表的所有记录。8、以cno升序、degree降序显示score表的所有记录。9、显示“98031”班的学生人数。10、显示score表中的最高分的学生学号和课程号。11、显示“3-105”号课程的平均分。12、显示score表中至少有5名学生选修的并以3开头的课程号的平均分数。
27、13、显示最低分大于70,最高分小于90 的sno列。14、显示所有学生的 sname、 cno和degree列。15、显示所有学生的 sname、 cname和degree列。16、列出“95033”班所选课程的平均分。17、显示选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。18、显示score中选修多门课程的同学中分数为非最高分成绩的记录。19、显示成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。20、显示出和学号为“108”的同学同年出生的所有学生的sno、sname和 birthday列。21、显示“张旭”老师任课的学生成绩。22、显示选修某课
28、程的同学人数多于5人的老师姓名。23、显示“95033”班和“95031”班全体学生的记录。24、显示存在有85分以上成绩的课程cno。25、显示“计算机系”老师所教课程的成绩表。26、显示“计算机系”和“电子工程系”不同职称的老师的tname和prof。27、显示选修编号为“3-105”课程且成绩至少高于“3-245”课程的同学的cno、sno和degree,并按degree从高到低次序排列。28、显示选修编号为“3-105”课程且成绩高于“3-245”课程的同学的cno、sno和degree。29、列出所有任课老师的tname和depart。30、列出所有未讲课老师的tname和depar
29、t。31、列出所有老师和同学的 姓名、性别和生日。*32、检索所学课程包含学生“103”所学课程的学生学号。*33、检索选修所有课程的学生姓名。2、 实验过程及结果1、创建表创建过程同实验一。创建结果显示如下:图2.1 创建表2、查询语句1、列出student表中所有记录的sname、sex和class列。答案2、显示教师所有的单位即不重复的depart列。3、显示学生表的所有记录。4、显示score表中成绩在60到80之间的所有记录。1. Select sname, sex, class from student;2. Select distinct depart from teacher;
30、3. Select * from student 4. Select * from score where degree between 60 and 80;图2.2 查询45、显示score表中成绩为85,86或88的记录。6、显示student表中“95031”班或性别为“女”的同学记录。7、以class降序显示student表的所有记录。8、以cno升序、degree降序显示score表的所有记录。5. Select * from score where degree in (85, 86, 88);6. Select * from student where class=95031 o
31、r sex='女'7. Select * from student order by class desc;8. Select * from score order by cno ASC, degree desc;图2.3 查询89、显示“98031”班的学生人数。10、显示score表中的最高分的学生学号和课程号。9. Select count(*) from student where class=98031;10.select sno,cno from score where degree=(select max(degree) from score)11、显示“3-10
32、5”号课程的平均分。12、显示score表中至少有5名学生选修的并以3开头的课程号的平均分数。13、显示最低分大于70,最高分小于90 的sno列。 11.Select avg(degree) as 平均分 from score where cno='3-105'12.Select cno,avg(degree) from score where cno like '3%'Group by cno having count(*) >=5;13.Select sno from score group by snoHaving min(degree)>7
33、0 and max(degree)<90;图2.4 查询1314、显示所有学生的 sname、 cno和degree列。15、显示所有学生的 sname、 cname和degree列。16、列出“95033”班所选课程的平均分。17、显示选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。-连接查询14.select sname,cno,degree from score,studentwhere student.sno=score.sno; 15.select sname,cname,degree from score,student,coursewhere stud
34、ent.sno=score.sno and o=o; 16.Select cno,avg(degree) from student , score where student.sno=score.sno and student.class='95033' group by cno;17.select o, x.sno, x.degree from score x, score y where o='3-105' and x.degree>y.degree and y.sno=109 and o='3-105'18、显示score中选修多门课
35、程的同学中分数为非最高分成绩的记录。19、显示成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。20、显示出和学号为“108”的同学同年出生的所有学生的sno、sname和 birthday列。18.Select a.sno, a.degree, o from score a, score bWhere a.sno=b.sno and a.degree<b.degree;19.Select o, x.sno, x.degree from score x, score yWhere x.degree>y.degree and y.sno=109 and o='
36、3-105'20. Select sno,sname,birthday from student Where year(birthday)= (select year(birthday) from student where sno=108)图2.5 查询2021、显示“张旭”老师任课的学生成绩。22、显示选修某课程的同学人数多于5人的老师姓名。23、显示“95033”班和“95031”班全体学生的记录。24、显示存在有85分以上成绩的课程cno。25、显示“计算机系”老师所教课程的成绩表。26、显示“计算机系”和“电子工程系”不同职称的老师的tname和prof。27、显示选修编号为
37、“3-105”课程且成绩至少高于“3-245”课程的同学的cno、sno和degree,并按degree从高到低次序排列。28、显示选修编号为“3-105”课程且成绩高于“3-245”课程的同学的cno、sno和degree。29、列出所有任课老师的tname和depart。30、列出所有未讲课老师的tname和depart。21.Select cno, sno, degree from scoreWhere cno=(select o from course x, teacher y where x.tno=y.tno and y.tname='张旭') 22.Select
38、tname from teacherWhere tno in( select x.tno from course x, score y where o=o group by x.tno having count(x.tno)>5)23Select * from student where class in (95033,95031);24 select cno from score where degree>85 group by cno; 图2.6 查询21-2425.Select cno,sno,degree from scoreWhere cno IN (select o f
39、rom course x, teacher y where y.tno=x.tno and y.depart='计算机系')26.Select tname, prof from teacher where depart='计算机系' and prof NOT IN (select prof from teacher where depart='电子工程系')27.Select cno sno,degree from scoreWhere cno='3-105' and degree>any (select degree fr
40、om score where cno='3-245')Order by degree desc;28.Select cno,sno,degree from scoreWhere cno='3-105' and degree>ALL (select degree from score where cno='3-245')29.select tname,depart from teacher where tno in (select tno from course); 30.select tname,depart from teacher aw
41、here tno not in (select tno from course);31、列出所有老师和同学的 姓名、性别和生日。*32、检索所学课程包含学生“103”所学课程的学生学号。*33、检索选修所有课程的学生姓名。31.select tname,sex,birthday from teacher union select sname,sex,birthday from student 32.Select distinct sno from score xWhere not exists (select * from score y where y.sno=103 and not exi
42、sts (select * from score z where z.sno=x.sno and o=o) ) 33.select student.sname from student where not exists (select * from course where not exists ( select * from score where student.sno=score.sno and o=o) )图2.7 查询31-33数据库实验三【实验项目三】实验室名称实验室地点学时2实验类型验证性每组人数1选做或必做必做实验目的掌握存储过程、触发器、函数的创建及应用内容提要实现存储过程、
43、触发器、函数的创建及应用。重点难点存储过程、触发器、函数的设计。主要仪器及耗材计算机一、实验内容:(1)创建一个查询图书库存量的存储过程“cx_tskcl_proc”(如果是SQL server数据库的话起这个名字,是其它数据库则按数据库的要求起名字,下面同),输出的内容包含类别号、图书编号、图书名称、库存数等数据内容。(2)创建一个名为TS_CX_PROC的存储过程,它带有一个输入参数,用于接受图书编号,显示该图书的名称、作者、出版和复本数。(3)修改存储 修改TS_CX_PROC存储过程,使之能按图书名称查询图书的相关信息。执行修改后的TS_CX_PROC存储过程,分别查询“航海英语”、“
44、艺海潮音”等图书的信息。(4)删除存储过程(5)图书类别表上创建一个名为tslb_insert_trigger的触发器,当执行INSERT操作时,该触发器被触发,禁止插入记录。(6)在图书明细表上创建一个名为ts_delete_trigger的触发器,当执行DELETE操作时,该触发器被触发,禁止删除记录。(7)在读者信息表上创建一个名为dzxx_insert_trigger的触发器,当在读者信息表中插入记录时,将该记录中的借书证号自动插入借还明细表中。 (8)删除触发器2、 实验过程1、 创建修改和删除存储过程(1)创建一个查询图书库存量的存储过程“cx_tskcl_proc”(如果是SQL
45、 server数据库的话起这个名字,是其它数据库则按数据库的要求起名字,下面同),输出的内容包含类别号、图书编号、图书名称、库存数等数据内容。(2)创建一个名为TS_CX_PROC的存储过程,它带有一个输入参数,用于接受图书编号,显示该图书的名称、作者、出版和复本数。(3)修改存储 修改TS_CX_PROC存储过程,使之能按图书名称查询图书的相关信息。执行修改后的TS_CX_PROC存储过程,分别查询“航海英语”、“艺海潮音”等图书的信息。(4)删除存储过程-1)图书查询存储过程drop proc cx_tskcl_proccreate proc cx_tskcl_proc asselect
46、类别号,图书编号,图书名称,库存数 from 图书明细表exec cx_tskcl_proc-2)带参数的过程drop proc TS_CX_PROCcreate proc TS_CX_PROC 图书编号_1 char(8) outputasselect 图书名称,作者,出版社,复本数from 图书明细表where 图书编号=图书编号_1exec TS_CX_PROC ''-3)修改存储过程alter proc TS_CX_PROC 书名 char(20)as select * from 图书明细表 where 图书名称=书名exec TS_CX_PROC '航海英语'exec TS_CX_PROC '艺海潮音'-4)删除存储过程drop proc TS_CX_PROCdrop proc cx_tskcl_procgo2、 触发器操作(5)图书类别表上创建一个名为tslb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新闻传播学媒体研究试题及答案
- 电商平台服务合同书
- 2025定制版手机的购销合同
- 天津专用2025届高考数学一轮复习考点规范练51随机抽样含解析新人教A版
- 2025房屋买卖合同书格式
- 2025年广告制作合同范本
- 2025(城市商业)租赁合同
- 2025【合作经营合同范本】
- 行政管理中的财务管理问题试题及答案
- 2025年企业移动应用开发合同官方版样本
- 2024年惠州市博罗县罗浮山文化旅游投资有限公司招聘笔试真题
- 中医特色治疗及护理
- 钢结构桁架厂房拆除施工方案
- 脑病科医护沟通技巧
- 四年级数学(小数加减运算)计算题专项练习与答案
- 《系统工程》复习题及答案
- 小区安全排查
- 中国典籍英译概述课件
- 【MOOC】航空发动机结构分析与设计-南京航空航天大学 中国大学慕课MOOC答案
- 红旅赛道未来规划
- 第七届江苏技能状元大赛无人机应用技术项目技术文件
评论
0/150
提交评论