数据库系统实验指导aa(20091023)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1数据查询
实验目的:
●了解数据查询的基础知识
●使用SELECT语句在数据库上进行简单查询
●通过使用别名和字面值设置结果集格式
●使用where子句过滤结果集
●使用GROUP BY和HAVING子句对数据进行分组查询
●掌握使用不同类型的联接方式进行表的联接操作
●使用UNION操作符合并结果集
●理解联接与UNION的区别
实验要求:
●熟练掌握基本的数据查询语句
●熟练编写SELECT语句进行简单查询
●熟练控制结果集的格式
●理解并熟练使用常用的统计函数
●熟练使用GROUP BY和HAVING子句对数据进行分组查询
●理解并熟练使用各种联接方式
●熟练使用UNION操作符合并结果集
●掌握随机帮助的使用方法
实验内容:
学生-课程数据库的三个表:
学生表:Student(Sno,Sname,Ssex,Sage,Sdept)Sno为主键;
说明:Sno学号,Sname姓名,Ssex性别,Sage年龄,Sdept所在系表中现有记录为:
说明:Cno课程号,Cname课程名,Cpno先行课,Credit学分
表中现有记录为:
说明:Sno学号,Cno课程号,Grade成绩
表中现有记录为:
Sno Cno Grade
95001192
95001285
95001388
95002290
95002380
1、查询表中的列和行
(1)查询全体学生的学号与姓名;
(2)查询全体学生的姓名及年龄;
(3)查询全体学生的姓名,年龄及所在系(要用小写字母表示系名,并用“系名”来表示列名);(4)查询选修了课程的学生学号。
2、条件查询
(1)查询计算机系全体学生的姓名;
(2)查询所有年龄在20岁以下的学生姓名及其年龄;
(3)查询年龄在20到23间的学生的姓名,系别及年龄;
(4)查询年龄不在20到23间的学生的姓名,系别及年龄;
(5)查询不是信息系(IS)和计算机系(CS)学生的姓名和性别;
(6)查询所有姓刘的学生的姓名,学号和性别;
(7)查询姓“李”且名为一个汉字的学生的姓名;
(8)查询名字中第2个字为”敏”字的学生姓名和学号;
(9)查询所有不姓刘的学生姓名;
(10)查询全体学生情况,结果按所在系的号升序排列,同一系中的学生按年龄降序。
3、使用统计函数
(1)查询学生的总人数;
(2)查询选修了课程的学生人数;
(3)计算选2号课程的学生平均成绩;
(4)查询选修3号课程的学生最高分数;
(5)求成绩排名前三名的学生号、课程号、成绩;(选做)
(6)求成绩排名前三名的学生号、课程号、成绩(包括成绩并列情况)。(选做)
4、分组查询
(1)求有成绩的每个学生的平均成绩;
(2)求有成绩的每个学生的总成绩;
(3)求每门课程的平均成绩;
(4)求平均成绩大于86分的学生学号及平均成绩;
(5)求平均成绩大于86分的课程的课程号及课程平均成绩;
(6)求各个课程号及相应的选课人数;
(7)查询选修了2门以上的课程的学生学号;
(8)查询选修了2门课程(含2门)的学生的学号和平均成绩,并根据平均成绩降序排列;(9)查询各学分等级的课程数目;
(10)查询18岁以上(含18)的男女生的人数;
(11)查询人数多于2人(含2人)的系的编号及人数;
5、多表联接查询
(1)查询选修“信息系统”课程的学生的学号;
(2)查询学生“李敏勇”选修的课程的平均分;
(3)查询选修“数学”课程的学生的平均分;
(4)查询学生“李敏勇”,成绩大于80分的课程号、成绩;
(5)查询成绩大于90分的学生的姓名;
(6)查询没有一门考试科目成绩低于85分的学生的姓名;
(7)查询学生“李敏勇”的所有成绩,显示的列名包括课程号、成绩;
(8)查询“信息系统”课程的成绩情况,显示的列名包括学号、成绩;
(9)查询所有学生的成绩情况,显示的列名包括学生姓名、课程号、成绩,注意结果集中也应包括未选修课程的学生;
(10)查询所有课程的成绩情况,显示的列名包括学生课程名称、学生学号、成绩,注意结果集中也应包括没有考试的课程;
(11)查询学生选修课程的考试情况,显示的列名包括学生姓名、课程名称、成绩;
(12)查询所在系相同的学生,显示的列名包括学生姓名、系名、相同系的学生姓名,剔除自己跟自己系相同的情况;
(13)查询学分相同的课程,显示的列名包括课程名称、学分、相同学分的另一课程名称。
6、子查询
(1)查询参加了二次以上的学生姓名;
(2)查询参加过考试的每个学生考的最好的那次考试的情况;
(3)查询平均分大于等于88的学生姓名;
实验2SQL语言的综合应用
1、利用Enterprise Manager,新建一个数据库,命名为sjkxtsy,并完成
以下功能:
1)记录某采油厂对油/水井实施作业时所消耗的成本。(作业:可理解为对油/水井进行大修)
2)成本的消耗分为预算、结算、入账三个状态。
预算:采油队向管理部门提出作业申请,并经管理部门批准后,由管理部门负责录入。
结算:某次作业施工结束后,由管理部门与施工单位共同核算各种成本,由管理部门负责录入。
入账:结算后,财务部门将成本计入采油厂账目,由财务部门录入。
3)预算状态时需要录入的数据:(★:字符型◆货币型▲日期型)
★单据号:某一作业项目的编号
★预算单位:指需要对油水井实施作业的采油队代码
★井号:需要实施作业的油水井
◆预算金额★预算人▲预算日期
4)结算状态需要录入的数据:(★:字符型◆货币型▲日期型▼数值型)
调出某条预算记录,录入以下数据:
▲开工日期▲完工日期★施工单位★施工内容
◆材料费(要求另外单独记录材料消耗的明细)
★物码▼消耗数量◆单价
◆人工费◆设备费◆其它费用
◆结算金额(材料费+人工费+设备费+其它费用)
★结算人▲结算日期
5)入账状态需要录入的数据:(★:字符型◆货币型▲日期型)
调出某条结算记录,录入以下数据:
◆入账金额★入账人▲入账日期
6)为了避免出现有歧义的错误,要求定义以下基础表:(★:字符型)
单位代码表:★单位代码★单位名称
油水井表:★井号★井别:油井/水井★单位代码(表示某口井由哪个单位负责管理)物码表:★物码★名称规格★计量单位
2、根据以上要求,利用Enterprise Manager,定义所需的数据表。
3、利用Enterprise Manager,录入以下相关的基础数据:
单位代码表:1122采油厂