[计算机软件及应用]数据库系统概论实验报告 阿亮.doc

上传人:音乐台 文档编号:1991961 上传时间:2019-01-29 格式:DOC 页数:35 大小:3.42MB
返回 下载 相关 举报
[计算机软件及应用]数据库系统概论实验报告 阿亮.doc_第1页
第1页 / 共35页
[计算机软件及应用]数据库系统概论实验报告 阿亮.doc_第2页
第2页 / 共35页
[计算机软件及应用]数据库系统概论实验报告 阿亮.doc_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[计算机软件及应用]数据库系统概论实验报告 阿亮.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]数据库系统概论实验报告 阿亮.doc(35页珍藏版)》请在三一文库上搜索。

1、西安邮电大学数据库系统概论上机实验报告院(系)名称:管理工程学院学生姓名:甄科亮专业名称:物流1103班班级学号:30提交时间: 2012年12月 10日目 录实验一 MSSQL SERVER 2000 环境及主要工具.1实验二 数据定义4实验三 数据更新11实验四 数据完整19实验五 索引与视图19实验六 数据查询27(说明:实验报告目录由每个同学完成报告内容后正确生成。)实验一 MSSQL SERVER 2000 环境及主要工具一、实验目的:1. 了解MSSQL SERVER 2000 提供的各种工具及其功能。2. 掌握企业管理器(Enterprise Manager)、服务管理器(Ser

2、vice Manager)、查询分析器(Query Analyzer)及联机文档(Books Online)的基本操作。3. 掌握通过企业管理器启动、关闭、注册和配置服务管理。二、实验时间:2012-XX-XX三、实验内容及步骤:1 从开始菜单打开MSSQL SERVER 2000的服务管理器,设置其服务器为本机服务器,服务为SQL Server,并启动该服务器。练习SQL Server 2000服务的开始、暂停、停止等操作。2 从开始菜单打开MSSQL SERVER 2000企业管理器,并将企业管理器与上述启动的服务器连接。3 对企业服务器进行配置,将其在操作系统启动时 自动启动SQL Se

3、rver 的功能去掉;先将其身份验证修改为Windows和SQL Server 共同验证,再修改为Windows验证。4 观察企业管理器的各个组成部分,练习有关的操作。 5 打开查询分析器,观察查询分析器的组成部分,练习有关的操作。 6 练习SQL Server 2000的联机丛书的使用,并使用联机丛书学习自己感兴趣的知识。4、 实验结果分析及总结(说明:每项实验报告的标题另起一页开始,按照以上各项内容完成。)上机实验是对我前一段时间所学知识的检验以及综合运用的体现,让我更深一步的了解和运用数据库,而不是只停留在书面和课堂上,本次试验的操作还是很生疏,我相信经过自己的努力一定会做的更好。 实验

4、二 数据定义一、实验目的:1. 掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。2. 掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。3. 掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。二、实验内容及步骤:1 通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jxsk,要求:有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为jxsk1和jxsk2,物理文件名为jxsk1.mdf和jxsk2.mdf。主文件是jxsk1,由primary指定,两个数据文件的最大尺寸分别为无限大和10

5、0MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为jxsklog1和jxsklog2,物理文件名为jxsklog1.df和jxsklog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。 2 用企业管理器修改数据库 要求:添加一个包含两个数据文件的文件组和一个事务日志文件到jxsk数据中。 3 用企业管理器在jxsk数据库中建立如下表: 学生表: Student 课程表: Course 选课表: SC 4 查看表格:显示当前数据库中所有对象的信息。 5 利用企业管理器删除表:在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现

6、除去对象对话框。单击“全部删除”按钮,即可去除 表。 6 利用企业管理器删除数据库jxsk。 7 用SQL语言创建数据库jiaoxuedb: 8 用SQL语言创建jiaoxuedb中的表: 9 用ALTER TABLE语句向学生表增加“入学时间”列,其数据类型为日期时间型,然后再间接删除该列。 10 用ALTER TABLE语句将学生的年龄的数据类型改为半字长(Smallint),查看修改属性后再改回。 实验三 数据更新一、 实验目的:掌握用SQL语句实现数据的插入、修改和删除。二、实验内容及步骤:1. 重建实验二中的数据库jiaoxuedb和其中的表,并插入相应数据值。插入jiaoxuedb

7、库中各表值: 2. 重建实验二中的数据库jxsk和其中的表,并插入相应的数值。创建数据库jxsk: 创建jxsk中的表: 插入jxsk库中各表值: 3. 将数据库jiaoxuedb中信息系全体学生的成绩置0。 4. 将数据库jiaoxuedb中电子商务系学生年龄增加1岁。 5. 将数据库jiaoxuedb中计算机系所有学生的选课记录删除。 实验四 数据完整性一、 实验目的:掌握关系数据库中的实体、参照及用户自定义完整性约束定义。二、实验内容及步骤:基于jiaoxuedb实验,需按实验三中的数据值建立数据库及其中的表。1. 对各表创建实体完整性。2. 创建表之间的参照完整性。2.用不同的方法创建

8、下面约束。(2) “性别”字段取值为:男或女;默认值:男;(3)“年龄”和“分数”字段取值限定为:0100之间。3. 向表中添加数据、更新数据验证约束。要求1)使用INSERT INTO 命令向表中分别插入若干数据,验证主键约束、唯一性约束、非空约束。2)使用UPDATE命令更新数据,验证外键约束及以上建立自定义约束。4. 依次删除以上约束。 5. 用SQL SERVER企业管理器完成以上完整性约束操作。4、 实验结果分析及总结 通过本次上机练习我基本掌握了数据库的实体、参照及用户自定义完整性约束定义的内容,但是我发现这次实验的程序都比较长,所以在写的时候很容易出错,我想还是自己学的不是很透彻

9、,下去应该好好练习了。 实验五 索引与视图 一、实验目的:1. 掌握利用SQL语言及SQL SERVER企业管理器创建索引的操作。2. 掌握利用SQL语言及SQL SERVER企业管理器创建和查看视图的操作。3. 掌握利用SQL语言及SQL SERVER企业管理器修改和删除视图的操作。二、实验内容及步骤:基于jiaoxuedb实验,需按实验三中的数据值建立数据库及其中的表。1. 对教师表Teacher中的教师号Tno创建聚族索引,并按降序排列。2. 对学生选课表SC,先按课号Cno升序排列,再按成绩Score降序排列。Cno升序:USE jiaoxuedbCREATE CLUSTERED IN

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

11、为991102,课号为01001的成绩记录。9. 创建一个视图,计算机系学生的成绩单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 jiaoxuedb

12、DELETE FORM S_VIEWWHERE Sname=王蕾)GO实验六 数据查询一、实验目的:1. 掌握SELECT查询语句在单表查询、连接查询、嵌套查询和集合查询中的常规用法。2. 掌握常用聚集函数的用法。3. 掌握LIKE、DISTINCT、ORDER BY、GROUP BY及UNION的用法。4. 掌握带EXISITS的查询语句。二、实验内容及步骤:基于jiaoxuedb实验,需按实验三中的数据值建立数据库及其中的表。1. 查询成绩在8090之间的记录。SELECT Student.Sno,Sname,Dept,Course.Cno,ScoreFROM Student,SC,Cou

13、rseWHERE Student.Sno=SC.Sno AND SC.Score BETWEEN 80 AND 90AND SC.Cno=Course.Cno;2. 查询至少有4个同学选修的课程名。USE jiaoxuedbSELECT Cno AS 课程号,Cname AS 课程名FROM CourseWHERE Cno=ANY (SELECTCno AS 课程号FROM SCGROUP BY CnoHAVING COUNT(*)=4)GO3. 查询其他系中比“信息系”所有学生年龄都打的学生名单及年龄,并按年龄降序输出。USE jiaoxuedbSELECT Sno AS 学号,Sname

14、AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE AgeALL (SELECT AgeFROM StudentWHERE Dept=信息)AND Dept 信息ORDER BY Age DESCGO4. 查询与学生张建国同岁的所有学生的学号、姓名和系别。/*方法一*/USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Age=ANY (SELECT AgeFROM StudentWHERE Sname=张建国)AND Sname 张建国ORDER B

15、Y Age DESCGO/*方法二*/USE jiaoxuedbSELECT s2.Sno,s2.Sname,s2.DeptFROM Student s1, Student s2WHERE s1.age=s2.age AND s1.Sname=张建国 AND s2.Sname 张建国5. 查询选修了2门以上课程的学生名单。USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Sno=ANY (SELECT SnoFROM SCGROUP BY SnoHAVING COUNT(*) =2)G

16、O6. 查询至少有一门与“张建国”选课相同的学生的姓名、课程名和系别。USE jiaoxuedbSELECT Sno AS 学号,Sname AS 姓名,Age AS 年龄,Dept AS 专业FROM StudentWHERE Sno=ANY (SELECT SnoFROM SCWHERE Cno=ANY(SELECT CnoFROM SCWHERE Sno=991103)AND Sname 张建国GO7. 查询成绩比该课程平均成绩高的学生的成绩表。/*方法一*/USE jiaoxuedbSELECT *FROM Sc xWHERE Score (SELECT AVG(Score)FROM

17、SC yWHERE y.Cno=x.Cno);GO/*方法二*/SELECT *FROM SC sc1WHERE Score (SELECT AVG(Score)FROM SC sc2)AND sc1.Cno=sc2.Cno;GO8. 查询选修课号为01001课程且成绩高于课程01002学生的成绩姓名、此两门课程的选修课程名和成绩。/*方法一*/USE jiaoxuedbSELECT Sname,Cname,ScoreFROM Student ,SC,CourseWHERE Student.Sno in(SELECT s1.SnoFROM SC s1,SC s2WHERE s1.Cno=010

18、01 AND s2.Cno=01002 AND s1.Scores2.Score AND s1.Sno=s2.Sno)AND SC.Sno=Student.SnoAND Course.Cno=SC.CnoGO/*方法二*/USE jiaoxuedbSELECT Sname,Cname,ScoreFROM Student ,SC,CourseWHERE Student.Sno in(SELECT SnoFROM SC xWHERE Score = (SELECT AVG(Score)FROM SC yWHERE y.Sno=x.SnoAND x.Cno=01001AND y.Cno=01002)

19、AND SC.Sno=Student.SnoAND Course.Cno=SC.Cno)GO9. 查询所有未修01001号课程的学生名单。USE jiaoxuedbSELECT Student.Sno,SnameFROM StudentWHERE Student.Sno IN(SELECT s1.SnoFROM SC s1WHERE Sno NOT IN(SELECT s2.SnoFROM SC s2WHERE Cno=01001)GO10. 查询每个同学各门课程的平均成绩和最高成绩,按降序排列输出姓名、平均成绩、最高成绩。USE jiaoxuedbSELECT Sname AS 姓名,AVG

20、(Score) AS 平均,MAX(Score) AS 最高FROM Student,SCWHERE Student.Sno=SC.SnoGROUP BY SnameORDER BY Sname DESCGO11. 查询所有学生都选修了的课程号和课程名。USE jiaoxuedbSELECT Cname AS 课程号,Cno AS 课程名FROM CourseWHERE NOT EXISTS(SELECT *FROM StudentWHERE NOT EXISTS(SELECT * FROM SCWHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno);G

21、O12. 查询选修了991102号学生选修了的课程的学生学号和姓名。use jiaoxuedbSELECT DISTINCT Sno,SnameFROM Student 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 三、实验结果分析及总结 这次的实验让我明白很多道理,任何事情都要自己去做,别人永远无法取代。正如老师您教导的,所有的事情只有自己做了,才会知道自己所欠缺的拷贝别人的没有任何意义,因为那是别人的。当我做了实验之后将课堂的知识应用实践,并且发现自己所欠缺的知识,是一个查漏补缺的好机会,让我更加深刻的熟练的使用数据库的基础的查询方法,视图和表的操作等等一系列知识,这对我以后的生活学习有很大的作用。再次感谢老师您的尊尊教导。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1