SQL查询练习参考答案.docx

上传人:b****5 文档编号:28153816 上传时间:2023-07-08 格式:DOCX 页数:8 大小:60.92KB
下载 相关 举报
SQL查询练习参考答案.docx_第1页
第1页 / 共8页
SQL查询练习参考答案.docx_第2页
第2页 / 共8页
SQL查询练习参考答案.docx_第3页
第3页 / 共8页
SQL查询练习参考答案.docx_第4页
第4页 / 共8页
SQL查询练习参考答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

SQL查询练习参考答案.docx

《SQL查询练习参考答案.docx》由会员分享,可在线阅读,更多相关《SQL查询练习参考答案.docx(8页珍藏版)》请在冰豆网上搜索。

SQL查询练习参考答案.docx

SQL查询练习参考答案

SQL查询练习参考答案

SQL查询练习参考答案

1.分别查询学生表和学生修课表中的全部数据.

select*fromstudent

select*fromsc

2.查询计算机系的学生的姓名、年龄。

select姓名,年龄fromstudentwhere所在系='计算机系'

3.查询选修了c01号课程的学生的学号和成绩。

select学号,成绩fromscwhere课程号='c01'

4.查询成绩在70到80分之间的学生的学号,课程号和成绩.

select学号,课程号,成绩fromscwhere成绩between70and80

5.查询计算机系年龄在18到20之间且性别为"男"的学生的姓名和年龄.

select姓名,年龄fromstudentwhere所在系='计算机系'and性别='男'and年龄between18and20

6.查询9512101号学生的修课情况.

select*fromscwhere学号='9512101'

7.查询c01号课程成绩最高的分数.

selectmax(成绩)最高分fromscwhere课程号='c01'

select学号,课程号,成绩最高分fromscwhere成绩=(selectmax(成绩)fromscwhere课程号='c01')

8.查询学生都修了哪些课程,要求列出课程号

selectdistinct课程号fromsc

9.查询Northwind数据库中orders表的OrderID,CustomerID和OrderDate,并奖最新的订购日期(OrderDate)列在前面.

useNorthwind

selectOrderDate,OrderID,CustomerIDfromorders

10.查询Northwind数据库中orders表的ShipCountry列以B,C,D,F开始且第三个字符为"a"的OrderID,CustomerID和ShipCountry信息.

selectOrderID,CustomerID,ShipCountryfromorderswhereShipCountrylike'[BCDF]_a%'

11.查询Northwind数据库中orders表的ShipCountry列不以A,B,C,D,E,F开始且最后一个字母是"a"的OrderID,CustomerID和ShipCountry信息.

selectOrderID,CustomerID,ShipCountryfromorderswhereShipCountrylike'[^ABCDEF]%A'

12.查询学生数据库中学生的最大年龄和最小年龄.

usesqllx

selectmax(年龄)最大年龄,min(年龄)最小年龄fromstudent

13.查询修了c02号课程的所有学生的平均成绩,最高成绩,最低成绩.

selectavg(成绩)平均成绩,max(成绩)最高成绩,min(成绩)最低成绩fromscwhere课程号='c02'

14.统计每个系的学生人数.

select所在系,count(*)人数fromstudentgroupby所在系

15.统计每门课程的修课人数和考试最高分.

select课程号,count(*)修课人数,max(成绩)最高分fromscgroupby课程号

16.统计每个学生的选课门数,并按选课门数的递增顺序显示结果

select学号,count(课程号)选课门数fromscgroupby学号orderbycount(课程号)

17.统计各系的修课的学生总数和考试的平均成绩.

select所在系,count(*)学生总数,avg(成绩)平均成绩fromstudentstjoinsconst.学号=sc.学号groupby所在系

18.查询选课门数超过两门的学生的平均成绩和选课门数.

select学号,count(课程号)选课门数,avg(成绩)平均成绩fromscgroupby学号havingcount(课程号)>2

19.列出总成绩超过200分的学生,要求列出学号,总成绩

select学号,sum(成绩)总成绩fromscgroupby学号havingsum(成绩)>200

20.平均价格超过12.0元的书的类型(type),平均价格

,要求只计算有确定价格的图书的情况。

usepubs

selecttype,avg(price)平均价格,max(price)最高价格

fromtitlesgroupbytypehaving

orderby成绩desc

25.查询计算机系男生修了"数据库基础"的学生的姓名,性别,成绩

select姓名,性别,成绩fromstudentst,courseco,scwherest.学号=sc.学号and

sc.课程号=co.课程号andst.所在系='计算机系'andco.课程名='数据库基础'andst.性别='男'

26.查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号,姓名,修课号,修课成绩

selectstudent.学号,姓名,课程号,成绩fromstudentleftjoinsconstudent.学号=sc.学号

27.列出"数据库基础"课程考试成绩前三名的学号,姓名,所在系和考试成绩.

selecttop3st.学号,姓名,所在系,成绩fromstudentst,courseco,sc

wherest.学号=sc.学号andco.课程号=sc.课程号and课程名='数据库基础'orderby成绩desc

--或者表示为:

selecttop3st.学号,姓名,所在系,成绩fromstudentstjoinsconst.学号=sc.学号

joincoursecoonsc.课程号=co.课程号

where课程名='数据库基础'orderby成绩desc

28查询哪些学生合选了一门课程,要求列出合选课程的学生的学号和课程号

selectdistincts1.学号,s1.课程号fromscs1joinscs2ons1.课程号=s2.课程号orderbys1.课程号

--29.查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄.

selectdistincts1.姓名,s1.年龄fromstudents1joinstudents2ons1.年龄=s2.年龄orderbys1.年龄

30.查询哪些课程没有人选,要求列出课程号和课程名.

selectco.课程号,co.课程名fromcourseco,sc

whereco.课程号=sc.课程号andco.课程号notin(select课程号fromsc)

31.查询有考试成绩的所有学生的姓名,修课名称,及考试成绩,要求将查询结果放在一张新的永久表(假设新表名为new_sc)中,

新表的列名分别为student_name,course_name,grade.

select姓名student_name,课程名course_name,成绩gradeintonew_sc

fromstudentstjoinsconst.学号=sc.学号joincoursecoonco.课程号=sc.课程号

wheresc.成绩isnotnull

32.分别查询信息系和计算机系的学生的姓名,性别,修课名称,修课成绩,并要求将这两个查询结果合并成一个结果集,

并以系名,姓名,性别,修课名称,修课成绩的顺序显示各列

selectst.所在系,st.姓名,st.性别,co.课程名,sc.成绩fromstudentst,courseco,sc

wheresc.学号=st.学号andsc.课程号=co.课程号andst.所在系='计算机系'

union

selectst.所在系,st.姓名,st.性别,co.课程名,sc.成绩fromstudentst,courseco,sc

wheresc.学号=st.学号andsc.课程号=co.课程号andst.所在系='信息系'

33用子查询实现如下查询:

1)查询选修了c01号课程的学生的姓名和所在系

select姓名,所在系fromstudentwhere学号

in(select学号fromscwhere课程号='c01')

2)查询数学系成绩80分以上的学生的学号,姓名.

select学号,姓名fromstudentwhere学号in(selectdistinct学号fromscwhere成绩>80)and所在系='数学系'

3)查询计算机系学生所选的课程名.

select课程名fromcoursewhere课程号in(select课程号fromscwhere学号

in(select学号fromstudentwhere所在系='计算机系'))

4)查询"VB"课程考试成绩前三名的学生的学号,姓名,所在系.

select学号,姓名,所在系fromstudentwhere学号

in(selecttop3withties学号fromscwhere课程号

in(select课程号fromcoursewhere课程名='VB')orderby成绩desc)

--34.

insertintotest_tvalues(null,'b1','')

insertintotest_tvalues('1','b2','c2')

insertintotest_tvalues('2','b3','')

insertintotest_tvalues(null,'b4','c4')

--35

selectst.学号,姓名,成绩,所在系intotest_3fromstudentst,sc

wherest.学号=sc.学号andst.所在系='计算机系'andsc.成绩>80

--36.

deletefromscwhere成绩=50

--37

--1)

deletefromscwhere成绩<50and学号in(select学号fromstudentwhere所在系='信息系')

deletefromsc

fromscjoinstudentonsc.学号=student.学号where所在系='信息系'and成绩<50

--38

updatescset成绩=成绩+10where课程号='c01'

--39

--1)

updatescset成绩=成绩+10where学号in(select学号fromstudentwhere所在系='计算机系')

and课程号in(select课程号fromcoursewhere课程名='计算机文化学')

--2)

updatescset成绩=成绩+10fromscjoinstudentonsc.学号=student.学号joincourseoncourse.课程号=sc.课程号

wherestudent.所在系='计算机系'andcourse.课程名='计算机文化学'*/

 

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

当前位置:首页 > 工程科技 > 信息与通信

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

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