数据库实验指导书_第1页
数据库实验指导书_第2页
数据库实验指导书_第3页
数据库实验指导书_第4页
数据库实验指导书_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数 据 库实验指导书电气与电子工程学院实 验 项 目实验一 认识DBMS及数据库的建立实验二 交互式SQL(数据库查询与更新)实验三 数据控制(安全性部分)实验四 数据控制(完整性部分)实验一 认识DBMS及数据库的建立一、实验目的:1. 掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。2. 掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。3. 掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。二、实验内容及步骤:1 通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jiaoxuedb,要求:有1个10MB和1个20M

2、B的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为jiaoxuedb1和jiaoxuedb2,物理文件名为jiaoxuedb1.mdf和jiaoxuedb2.mdf。主文件是jiaoxuedb1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为jiaoxuedblog1和jiaoxuedblog2,物理文件名为jiaoxuedblog1.df和jiaoxuedblog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。 2 用企业管理器在jiaoxuedb数据库中建立如下表: 学生表: jiaoxuedbd

3、ent 课程表: Course 选课表: SC 3 查看表格:显示当前数据库中所有对象的信息。 4 利用企业管理器删除表:在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。单击“全部删除”按钮,即可去除 表。 5 利用企业管理器删除数据库jiaoxuedb。 6 用SQL语言创建数据库jiaoxuedb: 7 用SQL语言创建jiaoxuedb中的表: 实验二 交互式SQL(数据库查询与更新)1、 实验目的:1. 掌握SELECT查询语句在单表查询、连接查询、嵌套查询和集合查询中的常规用法。2. 掌握常用聚集函数的用法。3.

4、 掌握LIKE、DISTINCT、ORDER BY、GROUP BY及UNION的用法。4. 掌握带EXISITS的查询语句。5. 掌握用SQL语句实现数据的插入、修改和删除。二、实验内容及步骤:基于jiaoxuedb实验,需按实验一中的数据值建立数据库及其中的表。1. 重建实验一中的数据库jiaoxuedb和其中的表,并插入相应数据值。插入jiaoxuedb库中各表值: 2. 重建实验一中的数据库jiaoxuedb和其中的表,并插入相应的数值。创建数据库jiaoxuedb:创建jiaoxuedb中的表: 插入jiaoxuedb库中各表值: 3. 将数据库jiaoxuedb中信息系全体学生的成

5、绩置0。 4. 将数据库jiaoxuedb中电子商务系学生年龄增加1岁。 5. 将数据库jiaoxuedb中计算机系所有学生的选课记录删除。 6. 查询成绩在8090之间的记录。SELECT jiaoxuedbdent.Sno,Sname,Dept,Course.Cno,ScoreFROM jiaoxuedbdent,SC,CourseWHERE jiaoxuedbdent.Sno=SC.Sno AND SC.Score BETWEEN 80 AND 90AND SC.Cno=Course.Cno;7. 查询至少有4个同学选修的课程名。USE jiaoxuedbSELECT Cno AS 课程

6、号,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 AgeALL (SELECT AgeFROM jiaoxuedbdentWHERE Dept=信息)AND Dept 信息ORDER BY Age DESC

7、GO9. 查询与学生张建国同岁的所有学生的学号、姓名和系别。/*方法一*/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 s2WHE

8、RE 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

9、年龄,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 y.Cno=x.Cno);GO/*方法二*/SELECT *FROM SC sc1WHERE Score (SELECT AVG(Sc

10、ore)FROM SC sc2)AND sc1.Cno=sc2.Cno;GO13. 查询选修课号为01001课程且成绩高于课程01002学生的成绩姓名、此两门课程的选修课程名和成绩。/*方法一*/USE jiaoxuedbSELECT Sname,Cname,ScoreFROM jiaoxuedbdent ,SC,CourseWHERE jiaoxuedbdent.Sno in(SELECT s1.SnoFROM SC s1,SC s2WHERE s1.Cno=01001 AND s2.Cno=01002 AND s1.Scores2.Score AND s1.Sno=s2.Sno)AND S

11、C.Sno=jiaoxuedbdent.SnoAND Course.Cno=SC.CnoGO/*方法二*/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 x.Cno=01001AND y.Cno=01002)AND SC.Sno=jiaoxuedbdent.SnoAND Course.Cno=SC.

12、Cno)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(Sco

13、re) 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 SC.Cno=Course.Cno

14、);GO17. 查询选修了991102号学生选修了的课程的学生学号和姓名。use jiaoxuedbSELECT DISTINCT Sno,SnameFROM jiaoxuedbdent s1WHERE NOT EXISTS(SELECT Cno FROM SC s2 WHERE Sno=991102 AND NOT EXISTS(SELECT Cno FROM SC s3 WHERE s1.Sno=s3.Sno AND s2.Cno=s3.Cno)AND s1.Sno!= 991102GO实验三 数据控制(安全性部分)一、实验目的:1. 掌握利用SQL语言及SQL SERVER企业管理器创建

15、索引的操作。2. 掌握利用SQL语言及SQL SERVER企业管理器创建和查看视图的操作。3. 掌握利用SQL语言及SQL SERVER企业管理器修改和删除视图的操作。二、实验内容及步骤:基于jiaoxuedb实验,需按实验二中的数据值建立数据库及其中的表。1. 对教师表Teacher中的教师号Tno创建聚族索引,并按降序排列。2. 对学生选课表SC,先按课号Cno升序排列,再按成绩Score降序排列。Cno升序:USE jiaoxuedbCREATE CLUSTERED INDEX IND_SC_CNO ON SC(Cno ASC)3. 对表jiaoxuedbdent中的学号Sno创建唯一索

16、引,并按升序排列。USE jiaoxuedbCREATE UNIQUE INDEX IND_S_SNO ON jiaoxuedbdent(Sno ASC)4. 通过企业管理器的索引管理功能观察Teacher、jiaoxuedbdent和SC索引的建立情况。5. 用DROP INDEX语句删除以上建立的索引。6. 创建成绩视图SCORE_VIEW,包含学号SNO,姓名SN,课程名CN,成绩SCORE。7. 创建一个计算机系学生名单视图S_VIEW,包含学号SNO,姓名SN,性别SEX。8. 通过上面的视图,修改学号为991102,课号为01001的成绩记录。9. 创建一个视图,计算机系学生的成绩

17、单SCORE_VIEW_CDEPT,包含学号SNO,姓名SN,课程名CN,成绩SCORE。10. 给视图S_VIEW增加一个年龄AGE字段。11. 创建一个教师工资表视图SAL_VIEW,包含字段教师名Tname,性别Sex,职称Prof,工资总和SALSUM,系别Dept。12. 通过视图查询教师“张明”的工资收入。USE jiaoxuedbSELECT Tname,SALSUMFROM SAL_VIEWWHERE Tname=张朋GO13. 通过视图S_VIEW,删除学生王蕾的记录。USE jiaoxuedbDELETE FORM S_VIEWWHERE Sname=王蕾)GO实验四 数据控制(完整性部分)一、 实验目的:掌握关系数据库中的实体、参照及用户自定义完整性约束定义。二、实验内容及步骤:基于jiaoxu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论