学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx

上传人:b****4 文档编号:13603827 上传时间:2022-10-12 格式:DOCX 页数:11 大小:19.50KB
下载 相关 举报
学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx_第1页
第1页 / 共11页
学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx_第2页
第2页 / 共11页
学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx_第3页
第3页 / 共11页
学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx_第4页
第4页 / 共11页
学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx

《学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

学生选课数据库SQL语句练习题详细分解答案Word文档下载推荐.docx

Sbirthday

datetime

学生出生年月

Class

Char(5)

学生所在班级

(二)Course

数据类型

Cno

课程号(主键)

Cname

Varchar(10)

课程名称

Tno

教师编号(外键)

表(三)Score

属性名

学号(外键)

课程号(外键)

Degree

Decimal(4,1)

成绩

主码:

Sno+Cno

表(四)Teacher

教师编号(主键)

Tname

Char(4)

教师姓名

Tsex

教师性别

Tbirthday

教师出生年月

Prof

Char(6)

职称

Depart

教师所在部门

表1-2数据库中的数据

(一)Student

class

108

曾华

1977-09

01

95033

105

匡明

1975-10

02

95031

107

王丽

1976-01

23

101

李军

1976-02

20

109

土芳

1975-02

10

103

陆君

1974-06

03

3-105

计算机导论

825

3-245

操作系统

804

6-166

数字电路

856

9-888

高等数学

831

86

75

68

92

88

76

64

91

78

85

79

81

李诚

1958-12

副教授

计算机系

张旭

1969-03

12

讲师

电子工程系

王萍

1972-05

05

助教

刘冰

1977-08

14

--1、查询Student表中的所有记录的SnameSsex和Class列。

selectsname,ssex,classfromstudent;

--2、查询教师所有的单位即不重复的Depart列。

selectdistinetdepartfromTeacher;

--3、查询Student表的所有记录。

select*fromstudent;

--4、查询Score表中成绩在60到80之间的所有记录。

select*fromscorewheredegreebetween60and80;

--5、查询Score表中成绩为85,86或88的记录。

select*fromscorewheredegreein(85,86,88);

--6、查询Student表中“9503班或性别为女”的同学记录

select*fromstudentwhereclass='

95031'

orssex=女:

--7、以Class降序查询Student表的所有记录。

select*fromstudentorderbyclassdesc;

--&

以Cno升序、Degree降序查询Score表的所有记录。

select*fromscoreorderbycno,degreedesc;

--9、查询“9503班的学生人数。

selectclass,count(*)as学生人数fromstudent

groupbyclasshavingclass二'

95031:

--10、查询Score表中的最高分的学生学号和课程号。

(子查询或者排序)

selectsno,cno,degree,

(selectmax(degree)fromscore)asmaxscore计算最高分

fromscorewheredegree=(selectmax(degree)fromscore);

--11、查询-105号课程的平均分。

selectavg(degree)asavgdegree

fromscoregroupbyenohavingeno二'

3-105:

--12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

selectavg(degree)asavgdegreefromscoregroupbyeno按照课程分组取平均值

havingeno二(selectenofromscoregroupbyenohavingcount(*)>

=5)--至少有5名学生选修的课程

andenolike'

3%'

;

-以3开头的课程

--13、查询最低分大于70,最高分小于90的Sno列selectsno,max(degree)asmaxdegree,min(degree)asmindegreefrom

Scoregroupbysno

havingmax(degree)<

90andmin(degree)>

70

--14、查询所有学生的SnameCno和Degree列。

selectsname,cno,degreefromstudent

joinscoreon二;

--15、查询所有学生的SnoCname和Degree列。

selectsno,cname,degreefromScore

joincourseon二;

--16、查询所有学生的SnameCname和Degree列。

selectsname,cname,degreefromstudent

joinscoreon二

--17、查询“9503班所选课程的平均分。

selectavg(degree)asavgdegreefromscorewheresnoin(selectsnofromstudentwhereclass二'

95033'

18、假设使用如下命令建立了一个grade表:

createtablegrade(lowint(3),uppint(3),rankchar

(1))

insertintogradevalues(90,100'

A)

insertintogradevalues(80,89'

B‘)

insertintogradevalues(70,79'

C)

insertintogradevalues(60,69'

D'

insertintogradevalues(0,59/E'

--现查询所有同学的Snc、Cno和rank列。

selectsno,cno,

(casewhendegreebetween90and100then'

A'

whendegreebetween80and89then'

B'

whendegreebetween70and79thenC

whendegreebetween60and69then'

D'

whendegreebetween0and59then'

E'

END)asrankfromscore;

--19、查询选修“305”课程的成绩高于“109号同学成绩的所有同学的记录。

select*fromscorewherecno二'

3-105'

anddegree>

(selectdegreefromscorewheresno二'

109'

andcno二'

);

--20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。

select*fromscorewheresnoin--选学多门课程的同学中分数为非最高分成绩的同学的全记录

(selectsnofromscoregroupbysnohavingcount(cno)>

1选学多门课程的同学

intersect--取交集为选学多门课程的同学中分数为非最高分成绩的同学。

selectdistinctsnofromscorewheresnonotin(-分数为非最高分成绩的同学

selectsnofromscorewheredegree=(selectmax(degree)fromscore)))--分数最高成绩的同学

--21、查询score中选学多门课程的同学中分数为非同课程最高分成绩的记录。

方法1:

select*fromscorewheresnoin--选学多门课程的同学中分数为非同课程最高分成绩的同学的全记录

intersect--取交集为选学多门课程的同学中分数为非同课程最高分成绩的同学。

selectdistinctsnofromscorewheresnonotin(-非同课程分数最高成绩的同学

selectdistinetsnofromscorewheredegreein(-同课程分数最高成绩的同学

selectmax(degree)fromscoregroupbycno)))-同课程分数最高成绩

方法2:

select*fromscorewheresnoin--选学多门课程的同学中分数

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1