数据库实验(共24页).doc
《数据库实验(共24页).doc》由会员分享,可在线阅读,更多相关《数据库实验(共24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上附 录实验一 数据描述、定义实验一、实验学时4学时。二、实验类型演示、设计类型。三、实验目的熟悉和掌握数据库的创建和连接方法;熟悉和掌握数据表的建立、修改和删除;加深对表的实体完整性、参照完整性和用户自定义完整性的理解。四、需用仪器、设备486以上微机;Windows95/97/98操作系统;安装了SQL Server2000/2005。五、实验准备1、熟悉SQL SERVER 工作环境;2、复习有关表的建立、修改和删除的SQL语言命令。六、实验方法及步骤1、介绍有关SQL SERVER的图形界面工作环境。2、创建数据库或连接已建立的数据库。3、在当前数据库上建立新表
2、。4、定义表的结构:(1)用SQL命令形式;(2)用SQL SERVER提供的企业管理器以交互方式进行。5、进一步定义表的主码,外码及在表上建立索引。6、将以上表的定义以.SQL文件的形式保存在磁盘上。7、修改表的结构。8、删除表的定义。七、实验内容背景材料:在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。1、创建学生-课程数据库;2、创建学生关系表Student;学号姓名性别年龄所在系SnoSnameSsexSageSdept3、创建课程关系Course;课程号课程名先行课学分CnoCnameCpnoCcredit4、创建课程关系表SC;学号课
3、程号成绩SnoCnoGrade5、将以上创建表Student、Course、SC的SQL命令以 .SQL文件的形式保存在磁盘上。6、在表Student上增加“出生日期”属性列。7、删除表Student的“年龄” 属性列。8、在表Student上,按“Sno” 属性列的唯一值方式建立索引。9、在表SC上,按“Grade” 属性列的多值方式建立索引。10、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。11、选做:创建教材P74-75习题5、SPJ数据库中的四个关系S、P、J、SPJ。八、实验思考1、定义表结构是对数据模型的哪个要素进行描述,对主属性有什么要求?2、修改表结构时,能否修改已
4、定义属性的参数?新增加的属性列能否定义为非空?为什么?3、分别在表Student、SC上按“sno”列的唯一值方式建立索引,可能出现问题吗?情况有什么区别?4、能否在非主属性列上建立索引?其恰当的方式是什么?九、问题1、 在表的定义中,如何确定属性是NOT NULL/NULL ( 主码,关键字,主属性/非主属性)?2、能否将Student、Course、SC表单独以一个数据文件的形式保存在磁盘上?3、在表Student的“SNO”,“SNAME”属性上分别按唯一值方式建立索引和在Student的“SNO”,“SNAME”上唯一值方式建立联合索引有无区别?4、要修改主属性的定义,正确的方式是什么
5、?实验二 数据查询实验一、实验学时6学时。二、实验类型综合类型。三、实验目的熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练的使用SQL 语句的各种形式;加深理解关系运算的各种操作(尤其是关系的选择,投影,连接和除运算)。四、需用仪器、设备486以上微机;Windows95/97/98操作系统;安装了SQL Server2000/2005。五、实验准备1、熟悉SQL SERVER 工作环境;2、连接到学生-课程数据库;3、复习对表中数据查询的SQL语言命令。六、实验方法及步骤1、在表Student、Course、SC上进行简单查询;2、在表Student、Course、SC上
6、进行连接查询;3、在表Student、Course、SC上进行嵌套查询;4、使用聚合函数的查询;5、对数据的分组查询;6、对数据的排序查询。七、实验内容在表Student、Course、SC上完成以下查询:1、查询学生的基本信息; select * from Student2、查询“CS”系学生的基本信息; select * from Student where sdept=cs3、查询“CS”系学生年龄不在19到21之间的学生的学号、姓名; select sno,sname from Student where sage not between 19 and 214、找出最大年龄; sele
7、ct max(sage) from Student5、找出“CS”系年龄最大的学生,显示其学号、姓名; select sno,sname from Student where sdept=cs and sage=( select max(sage) from Student where sdept=cs)6、找出各系年龄最大的学生,显示其学号、姓名;(1)方法一可用查询和连接来做此题。 select Sno 学号,Sname 姓名from Studentjoin (select max(Sage) Sage,Sdept from Student group by Sdept) as a on
8、(a.Sage=Student.Sage and a.Sdept=Student.Sdept)(2)方法二可用视图来做此题。 create view ms(sdept,sage)asselect sdept,max(sage) sage from Student group by sdeptselect sno,snamefrom Student,mswhere Student.sdept=ms.sdept and Student.sage=ms.sage7、统计“CS”系学生的人数; select count(sno) from Student where sdept=cs8、统计各系学生的
9、人数,结果按升序排列;(1)方法一 select sdept,count(sno) snum from Student group by sdept order by snum asc(2)方法二select sdept,count(*) from Student group by sdept order by count(*) asc9、按系统计各系学生的平均年龄,结果按降序排列; select sdept,avg(sage) avgage from Student group by sdept order by avgage desc10、查询每门课程的课程名; select cname
10、from Course11、查询无先修课的课程的课程名和学分数; select cname,ccredit from Course where cpno is null12、 统计无先修课的课程的学分总数; select sum(ccredit) from Course where cpno is null13、统计每位学生选修课程的门数、学分及其平均成绩; select count(SC.cno) snum,sum(Course.ccredit) scredit,avg(sc.grade) avggrade from SC,Course where SC.cno=Co group by SC
11、.sno14、统计选修每门课程的学生人数及各门课程的平均成绩; select count(sno) snum,avg(grade) avggrade from SC group by cno15、找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;(1)方法一可用视图与查询来做此题。 create view avgs1asselect sno,avg(grade) avggrade from SC group by snoselect Student.sno,sname,sdept,avggradefrom avgs1,studentwhere avggrade=85 and
12、 student.sno=avgs.snoorder by sdept,avggrade(2)方法二可用查询来做此题。select student.sno 学号,sdept 系,avg(grade) 平均成绩from sc,studentwhere sc.sno=student.snogroup by student.sdept,student.snohaving avg(grade)=85order by avg(grade) asc16、查询选修了“1”或“2”号课程的学生学号和姓名;(1)方法一可用查询语句和OR操作来实现。 select distinct Student.sno,sna
13、me from SC,Student where SC.sno=Student.sno and (cno=1or cno=2)(2)方法二可用Union(并)来实现。select Student.sno,sname from SC,Student where SC.sno=Student.sno and cno=1 unionselect Student.sno,sname from SC,Student where SC.sno=Student.sno and cno=217、查询选修了“1”和“2”号课程的学生学号和姓名;(1)方法一select student.sno,sname fro
14、m Student where sno in (select sno from SC where cno=1and sno in ( select sno from SC where cno=2) (2)方法二select sc.sno 学号,sname 姓名from sc,studentwhere cno=1 and sc.sno in(select sc.snofrom scwhere cno=2 and sc.sno=student.sno)18、查询选修了课程名为“数据库”且成绩在60分以下的学生的学号、姓名和成绩; select Student.sno,sname,gradefrom
15、 SC,Student,Coursewhere cname=数据库and grade322、查询选修课程成绩至少有一门在80分以上的学生学号;select distinct snofrom SCwhere grade8023、查询选修课程成绩均在80分以上的学生学号;(1)方法一select distinct snofrom SC where sno not in ( select sno from SC where grade8024、查询选修课程平均成绩在80分以上的学生学号;select snofrom SC group by snohaving avg(grade)8025、选做:针对
16、SPJ数据库中的四个表S,P,J,SPJ,完成教材P74-75-习题5中的查询及教材P127-习题5中的查询。实验三 数据更新实验一、实验学时2学时。二、实验类型综合、设计类型。三、实验目的熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;加深理解表的定义对数据更新的作用。四、需用仪器、设备486以上微机;Windows95/97/98操作系统;安装了SQL Server2000/2005。五、实验准备1、熟悉SQL SERVER 工作环境;2、连接到学生-课程数据库;3、复习对表中数据的插入、修改和删除的SQL语言命令。六、实验方法及步骤1、将数据插入当前数据库的表Student、C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 24
限制150内