数据库原理复杂查询实验报告.docx
- 文档编号:6737009
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:12
- 大小:98.27KB
数据库原理复杂查询实验报告.docx
《数据库原理复杂查询实验报告.docx》由会员分享,可在线阅读,更多相关《数据库原理复杂查询实验报告.docx(12页珍藏版)》请在冰点文库上搜索。
数据库原理复杂查询实验报告
计算机科学与信息学院
软件工程系上机实验报告
《数据库原理》实验报告
题目
实验4复杂查询
(一)
姓名
***
班级
***
日期
***
实验环境:
SQLServer2000
实验内容与完成情况:
一、实验目的
本实验的目的使学生熟练掌握SQLServer查询分析器的使用方法,本实验的目的是使学生进一步掌握SQLServer查询分析器的使用方法,加深SQL语言的连接查询的理解。
二、实验内容
本实验使用实验三中建立的基本表Student、Course、SC和Teacher中的元组。
Student
学号
Sno
姓名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
1
李勇
男
20
CS
2
刘晨
女
19
CS
3
王敏
女
18
MA
5
张立
男
19
IS
6
欧阳丽
女
21
FL
Course
课程号
Cno
课程名
Cname
先行课
Cpno
学分
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
PASCAL
6
4
8
DB_Design
1
2
SC
学号
Sno
课程号
Cno
成绩
Grade
1
1
92
1
2
85
1
3
88
2
2
90
2
3
80
2
1
3
2
50
3
3
70
Teacher
教师编号
Tno
教师
姓名
Tname
性别
Tsex
年龄
Tage
所在系
Tdept
职称
Ttitles
工资
Twage
系主任
编号
Tdno
110001
钟灵
女
27
CS
讲师
2800
110005
110002
杨毅
男
42
CS
副教授
3500
110005
110003
周倩
女
25
CS
讲师
2800
110005
110005
陈文茂
男
48
CS
教授
4000
110005
120001
江南
男
30
IS
副教授
3500
120003
120002
刘洋
男
28
IS
讲师
2800
120003
120003
汪明
男
44
IS
教授
4000
120003
120004
张蕾
女
35
IS
副教授
3500
120003
130001
邹佳羽
女
25
MA
讲师
2800
130003
130002
王力
男
30
MA
讲师
2800
130003
130003
王小峰
男
35
MA
副教授
3500
130003
130004
魏昭
男
40
MA
副教授
3500
130003
140001
王力
男
32
FL
副教授
3500
140005
140002
张小梅
女
27
FL
讲师
2800
140005
140003
吴娅
女
27
FL
讲师
2800
140005
140004
陈姝
女
35
FL
副教授
3500
140005
140005
周斌
男
44
FL
教授
4000
140005
在SQLServer2000查询分析器中,使用连接查询完成如下查询要求:
(1)求选课学生的基本情况以及他的选修情况;
SELECTStudent.*,SC.*
FROMStudent,SC
WHERE=;
(2)求学生的学号、姓名、选修的课程号及成绩;
SELECT,,,
FROMStudent,SC
WHERE=;
(3)求选修课程号为1且成绩在90以上的学生学号、姓名和成绩;
SELECT,,
FROMStudent,SC
WHERE=AND=1ANDGrade>90;
(4)求每一门课程的间接先行课(即先行课的先行课);
SELECT,as'该课程的先行课'
FROMCourseFIRST,CourseSECOND
WHERE=;
(5)求选修了数学课的学生的学号和姓名;
SELECT,
FROMStudent,SC,Course
WHERE=AND=AND='数学';
(6)求学生李勇选修的总学分;
SELECT,SUMas'总学分'
FROMStudent,SC
WHERE=AND='李勇'
Groupby;
(7)求各学生选修的总学分;
SELECT,SUMas'总学分'
FROMStudent,SC
WHERE=
Groupby;
(8)求课程“数据库”的平均成绩;
SELECTas'数据库',AVGas'平均成绩'
FROMCourse,SC
WHERE=AND='数据库'
Groupby;
(9)求计算机系学生的选课情况;
SELECTSC.*,,
FROMSC,Student
WHERE=AND='CS';
(10)求和钟灵在同一个系的老师姓名;
SELECTTname
FROMTeacher
WHERETdept=
(SELECTTdept
FROMTeacher
WHERETname='钟灵');
(11)求吴娅所在系的教师人数;
SELECTCOUNT(Tdept)
FROMTeacher
WHERETdept=
(
SELECTTdept
FROMTeacher
WHERETname=‘吴娅’);
(12)求和王小峰同一职称的教师姓名和所在系;
SELECTTname,Tdept
FROMTeacher
WHERETtitles=
(
SELECTTtitles
FROMTeacher
WHERETname=‘王小峰’)
ANDTname!
=‘王小峰’;
(13)求和邹佳羽工资相同的教师人数;
SELECTcount(Twage)
FROMTeacher
WHERETwage=(
SELECTTwage
FROMTeacher
WHERETname='邹佳羽')
ANDTname!
='邹佳羽';
(14)求汪明所在系教师的平均工资和最高工资;
SELECTAVG(Twage)as'平均工资',MAX(Twage)as'最高工资'
FROMTeacher
WHERETdept=(
SELECTTdept
FROMTeacher
WHERETname='汪明');
(15)求至少选修了8个学分的学生学号。
SELECT,SUM
FROMSC,Course
WHERE=
GROUPBY
HAVINGSUM>=8;
三、出现的问题及其解决方案(列出遇到的问题和解决办法,列出没有解决的问题)
问题1:
在求选修了数学课的学生的学号和姓名时,结果为零。
分析原因:
是否是表之间的属性联系没有对应,导致无法连接表,而没有显示数据;
解决办法:
检查表之间的公共属性是否连接正确,发现Course表的Cno没有与SC表的Cno连接。
问题2:
在求学生李勇选修的总学分,要显示总学分,则要标明是谁的总学分,用学生姓名来标明,但输入‘SELECT,SUM····’查询时提示“选择列表中的列''无效,因为该列没有包含在聚合函数或GROUPBY子句中。
”
分析原因:
是否是聚集函数是按子句__进行分组的;
解决办法:
将分组子句改为‘Groupby;’改为‘Groupby;’,问题解决。
问题3:
在求和王小峰同一职称的教师姓名和所在系时,将王小峰也显示出来了。
分析原因:
因为是嵌套查询,所以王小峰所在系与内查寻的系相同,所以也显示;
解决办法:
将王小峰的名去掉,加上’ANDTname!
=‘王小峰’’。
问题解决。
问题4:
在求汪明所在系教师的平均工资和最高工资时,提示“操作数数据类型char对于avg运算符无效。
”;
分析原因:
AVG()聚集函数是对int型元素进行运算的。
解决办法:
将Teacher表的Twage数据类型改为int型。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 复杂 查询 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)