数据库原理单表查询实验报告Word文件下载.docx
《数据库原理单表查询实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库原理单表查询实验报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
Sage
所在系
Sdept
200215121
李勇
男
20
CS
200215122
刘晨
女
19
200215123
王敏
18
MA
200215125
张立
IS
200215126
欧阳丽
21
FL
Course
课程号
Cno
课程名
Cname
先行课
Cpno
学分
Ccredit
1
数据库
5
4
2
数学
3
信息系统
操作系统
6
数据结构
7
数据处理
PASCAL
8
DB_Design
SC
学号
成绩
Grade
92
85
88
90
80
50
70
Teacher
教师编号
Tno
教师
Tname
Tsex
Tage
Tdept
职称
Ttitles
工资
Twage
系主任
编号
Tdno
110001
钟灵
27
讲师
2800
110005
110002
杨毅
42
副教授
3500
110003
周倩
25
陈文茂
48
教授
4000
120001
江南
30
120003
120002
刘洋
28
汪明
44
120004
张蕾
35
130001
邹佳羽
130003
130002
王力
王小峰
130004
魏昭
40
140001
32
140005
140002
张小梅
140003
吴娅
140004
陈姝
周斌
在SQLServer2000查询分析器中,完成如下查询要求:
(1)求全体学生的姓名、性别和所在系。
SELECTSname,Ssex,SdeptFROMStudent;
(2)求该校的所有系名。
SELECTDISTINCTSdeptFROMStudent;
(3)求计科系男生的学号和姓名。
SELECTSno,SnameFROMStudentWHERESsex=’男’andSdept=’CS’;
(4)求年龄在19-21岁(包含19岁和21岁)之间的学生姓名和所在系。
SLELCTSno,SdeptFROMStudentWHERESageBETWEEN19AND21;
(5)求存在先行课的课程的课程名和学分。
SELECTCname,CcreditFROMCourseWHERECpnoISnotNULL;
(6)求数学系或者信息系的学生姓名。
SELECTSnameFROMStudentwhereSdeptin('
MA'
'
IS'
);
(7)求以“数据”开头的所有课程的课程名和学分。
SELECTCname,CcreditFROMCourseWHERECnameLIKE'
数据%'
;
(8)求课程DB_Design的学分。
SELECTCcreditFROMCourseWHERECnameLIKE'
DB_Design'
(9)求缺考学生的学号和课程号。
SELECTSno,CnoFROMSCWHEREGradeISNULL;
(10)求选修了2号课程学生的学号和成绩。
SELECTSno,GradeFROMSCWHERECno='
2'
(11)求计科系老师的姓名和工资。
SELECTTname,TwageFROMTeacherWHERETdept='
CS'
(12)求姓王的老师的姓名和所在系。
SELECTTname,TaddressFROMTeacherWHERETnameLIKE'
王%'
(13)求工资在2500-3500之间的老师姓名。
SELECTTname
FROMTeacher
whereTwageBETWEEN2500AND3500;
(14)求外语系所有副教授的姓名和年龄。
SELECTTname,Tage
whereTdept='
FL'
ANDTtitlesLIKE'
副教授'
(15)求所有女老师的姓名、年龄和所在系。
SELECTTname,Tage,Tdept
WHERETsex='
女'
(16)求学生的总人数。
SELECTCOUNT(*)as'
学生总人数'
FROMStudent;
(17)求选修了课程的学生人数。
SELECTCno,COUNT(Sno)as'
选修该课程的学生人数'
FROMSC
GROUPBYCno;
(18)求课程号和选修了该课程的学生人数。
SELECTCOUNT(DISTINCTSno)as'
选修课程的学生人数'
FROMSC;
(19)求教师人数超过4人的系名。
SELECTTdeptas'
教师人数超过4人的系'
GROUPBYTdept
HAVINGCOUNT(*)>
4;
(20)求学生的学号及其选修课程的总成绩。
SELECTSno,sum(Grade)as'
总成绩'
GROUPBYSno;
(21)求系名和各系老师的平均年龄。
SELECTTdept,AVG(Tage)as'
平均年龄'
FROMTeacher
GROUPBYTdept;
(22)求各门课程课程号和平均成绩。
SELECTCno,AVG(Grade)as'
平均成绩'
GROUPBYCno;
(23)求选修课程号为1的学号和成绩,并要求对查询结果按成绩的降序排列,学号的升序排列。
SELECTSno,Grade
WHERECno=1
ORDERBYGradeDESC,SNOASC;
(24)求选修课程号为1且成绩在80~95之间的学生学号和成绩,并且成绩乘以0.8输出,将输出的列名改成“学号”和“成绩*0.8”。
SELECTSnoas'
学号'
Grade*0.8as'
成绩*0.8'
WHERECno=1ANDGradeBETWEEN80AND95
(25)求3号课程的最高分。
SELECTMAX(Grade)as'
3号课程的最高分'
WHERECno=3;
三、出现的问题及其解决方案(列出遇到的问题和解决办法,列出没有解决的问题)
问题1:
在查询计科系男生的学号和姓名时,提示“’‘”符号处有语法错误。
分析原因:
应该是受符号的中英文输入影响;
解决办法:
将英文的“’”符号改为中文的“‘”,问题解决。