当前位置:文档之家› 数据库实验指导书

数据库实验指导书

数据库实验指导书电气与电子工程学院实验项目实验一认识DBMS及数据库的建立实验二交互式SQL(数据库查询与更新) 实验三数据控制(安全性部分)实验四数据控制(完整性部分)实验一认识DBMS及数据库的建立一、实验目的:1.掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。

2.掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。

3.掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。

二、实验内容及步骤:1.通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jiaoxuedb,要求:有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。

数据文件逻辑名称为jiaoxuedb1和jiaoxuedb2,物理文件名为jiaoxuedb1.mdf和jiaoxuedb2.mdf。

主文件是jiaoxuedb1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。

事务日志文件的逻辑名为jiaoxuedblog1和jiaoxuedblog2,物理文件名为jiaoxuedblog1.df和jiaoxuedblog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。

2.用企业管理器在jiaoxuedb数据库中建立如下表:学生表: jiaoxuedbdent课程表: Course选课表: SC3.查看表格:显示当前数据库中所有对象的信息。

4.利用企业管理器删除表:在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。

单击“全部删除”按钮,即可去除表。

5.利用企业管理器删除数据库jiaoxuedb。

6.用SQL语言创建数据库jiaoxuedb:7.用SQL语言创建jiaoxuedb中的表:实验二交互式SQL(数据库查询与更新)一、实验目的:1.掌握SELECT查询语句在单表查询、连接查询、嵌套查询和集合查询中的常规用法。

2.掌握常用聚集函数的用法。

3.掌握LIKE、DISTINCT、ORDER BY、GROUP BY及UNION的用法。

4.掌握带EXISITS的查询语句。

5.掌握用SQL语句实现数据的插入、修改和删除。

二、实验内容及步骤:基于jiaoxuedb实验,需按实验一中的数据值建立数据库及其中的表。

1.重建实验一中的数据库jiaoxuedb和其中的表,并插入相应数据值。

插入jiaoxuedb库中各表值:2.重建实验一中的数据库jiaoxuedb和其中的表,并插入相应的数值。

创建数据库jiaoxuedb:创建jiaoxuedb中的表:插入jiaoxuedb库中各表值:3.将数据库jiaoxuedb中信息系全体学生的成绩置0。

4.将数据库jiaoxuedb中电子商务系学生年龄增加1岁。

5.将数据库jiaoxuedb中计算机系所有学生的选课记录删除。

6.查询成绩在80~90之间的记录。

SELECT jiaoxuedbdent.Sno,Sname,Dept,o,Score FROM jiaoxuedbdent,SC,CourseWHERE jiaoxuedbdent.Sno=SC.SnoAND SC.Score BETWEEN 80 AND 90AND o=o;7.查询至少有4个同学选修的课程名。

USE jiaoxuedbSELECT Cno AS 课程号,Cname AS 课程名FROM CourseWHERE Cno=ANY(SELECTCno AS 课程号FROM SCGROUP BY CnoHAVING COUNT(*)>=4)GO8.查询其他系中比“信息系”所有学生年龄都打的学生名单及年龄,并按年龄降序输出。

USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM jiaoxuedbdentWHERE Age>ALL(SELECT AgeFROM jiaoxuedbdentWHERE Dept='信息')AND Dept <> '信息'ORDER BY Age DESCGO9.查询与学生张建国同岁的所有学生的学号、姓名和系别。

/*方法一*/USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM jiaoxuedbdentWHERE Age=ANY(SELECT AgeFROM jiaoxuedbdentWHERE Sname='张建国')AND Sname <> '张建国'ORDER BY Age DESCGO/*方法二*/USE jiaoxuedbSELECT s2.Sno,s2.Sname,s2.DeptFROM jiaoxuedbdent s1, jiaoxuedbdent s2WHERE s1.age=s2.age AND s1.Sname='张建国' AND s2.Sname <> '张建国'10.查询选修了2门以上课程的学生名单。

USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM jiaoxuedbdentWHERE Sno=ANY(SELECT SnoFROM SCGROUP BY SnoHAVING COUNT(*) >=2)GO11.查询至少有一门与“张建国”选课相同的学生的姓名、课程名和系别。

USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM jiaoxuedbdentWHERE Sno=ANY(SELECT SnoFROM SCWHERE Cno=ANY(SELECT CnoFROM SCWHERE Sno=’991103’))AND Sname <> '张建国'GO12.查询成绩比该课程平均成绩高的学生的成绩表。

/*方法一*/USE jiaoxuedbSELECT *FROM Sc xWHERE Score >(SELECT AVG(Score)FROM SC yWHERE o=o));GO/*方法二*/SELECT *FROM SC sc1WHERE Score >(SELECT AVG(Score)FROM SC sc2)AND o=o;GO13.查询选修课号为01001课程且成绩高于课程01002学生的成绩姓名、此两门课程的选修课程名和成绩。

/*方法一*/USE jiaoxuedbSELECT Sname,Cname,ScoreFROM jiaoxuedbdent ,SC,CourseWHERE jiaoxuedbdent.Sno in(SELECT s1.SnoFROM SC s1,SC s2WHERE o='01001' AND o='01002' AND s1.Score>s2.Score AND s1.Sno=s2.Sno)AND SC.Sno=jiaoxuedbdent.SnoAND o=oGO/*方法二*/USE jiaoxuedbSELECT Sname,Cname,ScoreFROM jiaoxuedbdent ,SC,CourseWHERE jiaoxuedbdent.Sno in(SELECT SnoFROM SC xWHERE Score >=(SELECT AVG(Score)FROM SC yWHERE y.Sno=x.SnoAND o='01001'AND o='01002')AND SC.Sno=jiaoxuedbdent.SnoAND o=o)GO14.查询所有未修01001号课程的学生名单。

USE jiaoxuedbSELECT jiaoxuedbdent.Sno,SnameFROM jiaoxuedbdentWHERE jiaoxuedbdent.Sno IN(SELECT s1.SnoFROM SC s1WHERE Sno NOT IN(SELECT s2.SnoFROM SC s2WHERE Cno='01001'))GO15.查询每个同学各门课程的平均成绩和最高成绩,按降序排列输出姓名、平均成绩、最高成绩。

USE jiaoxuedbSELECT Sname AS 姓名,AVG(Score) AS 平均,MAX(Score) AS 最高FROM jiaoxuedbdent,SCWHERE jiaoxuedbdent.Sno=SC.SnoGROUP BY SnameORDER BY Sname DESCGO16.查询所有学生都选修了的课程号和课程名。

USE jiaoxuedbSELECT Cname AS 课程号,Cno AS 课程名FROM CourseWHERE NOT EXISTS(SELECT *FROM jiaoxuedbdentWHERE NOT EXISTS(SELECT * FROM SCWHERE jiaoxuedbdent.Sno=SC.Sno AND o=o)); GO17.查询选修了991102号学生选修了的课程的学生学号和姓名。

use jiaoxuedbSELECT DISTINCT Sno,SnameFROM jiaoxuedbdent s1WHERE NOT EXISTS(SELECT CnoFROM SC s2WHERE Sno='991102' AND NOT EXISTS(SELECT CnoFROM SC s3WHERE s1.Sno=s3.Sno AND o=o)) AND s1.Sno!= '991102'GO实验三数据控制(安全性部分)一、实验目的:1.掌握利用SQL语言及SQL SERVER企业管理器创建索引的操作。

2.掌握利用SQL语言及SQL SERVER企业管理器创建和查看视图的操作。

3.掌握利用SQL语言及SQL SERVER企业管理器修改和删除视图的操作。

二、实验内容及步骤:基于jiaoxuedb实验,需按实验二中的数据值建立数据库及其中的表。

1.对教师表Teacher中的教师号Tno创建聚族索引,并按降序排列。

2.对学生选课表SC,先按课号Cno升序排列,再按成绩Score降序排列。

相关主题