数据库题库语句题Word格式.docx
《数据库题库语句题Word格式.docx》由会员分享,可在线阅读,更多相关《数据库题库语句题Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
groupby
3.设有学生表:
针对以上各表,请按如下模式写出创建满足如下要求的视图的SQL语句。
统计选课人数最多的前三门课程(包括并列的情况)的课程名和开课学期。
createviewv5(课程名,开课学期)as
createviewv5(课程名,开课学期)as
selectcname,semesterfromcoursewherecnoin(
selecttop3withtiescnofromsc
groupbycno
orderbycount(*)desc)
4.设有学生表:
查询计算机系哪些学生没有选课,列出学生姓名。
(请用外连接实现)
selectsnamefromstudentsleftjoinscon=
wheresdept='
计算机系'
andisnull
5.设有学生表:
删除“VB”考试成绩最低的学生的VB修课记录。
deletefromscwheresnoin(
selecttop1withtiessnofromscjoincoursecon=
wherecname='
VB'
orderbygradeasc)
andcnoin(
selectcnofromcourse
)
6.设有学生表:
查询计算机系年龄最大的三个学生的姓名和年龄(包括并列情况)
selecttop3withtiessname,sagefromstudent
wheresdept='
orderbysagedesc
7.设有学生表:
写出查询成绩小于60的学生姓名、课程名及成绩的SQL语句。
selectSname,Cname,GradefromStudentjoinSCon=
joinCourseon=
whereGrade<
60
8.设有学生表:
统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
selectsno,count(*)选课门数,sum(grade)总成绩fromsc
groupbysno
orderbycount(*)asc
9.设有学生表:
查询哪些课程没有学生选,列出课程号和课程名。
select,cnamefromcoursecleftjoinscon=
whereisnull
10.设有学生表:
查询VB考试成绩高于VB平均成绩的学生姓名。
selectsnamefromstudentsjoinscon=
joincoursecon=
andgrade>
(
selectavg(grade)fromscjoincoursecon=
11.设有学生表:
写出查询选课人数在3人以上课程的平均成绩的SQL语句。
selectCno,avg(Grade)fromCourse
cnohavingcount(*)>
=3
12.设有学生表:
查询选修C002课程的学生的姓名和所在系。
selectsname,sdeptfromstudentsjoinscon=
wherecno='
C002'
13.设有学生表:
在Course表中插入一行新数据,课程号为C100,课程名为Java,开课学期未定,学分为3。
insertintocoursevalues('
C100'
'
Java'
3,null)
14.设有学生表:
在Student表中插入一行新数据,学号为S100,姓名:
新生,性别:
男,年龄:
19,所在系未定。
insertintoStudentvalues('
S100'
新生'
男'
19,null)
15.设有学生表:
将C001课程的考试成绩增加10分。
updatescsetgrade=grade+10
C001'
16.设有学生表:
针对以上各表,用SQL语句完成以下操作。
统计每个系VB课程的考试情况,列出系名和考试情况,其中考试情况为:
如果VB平均成绩大于等于90,则考试情况为“好”;
如果VB平均成绩在80~89分,则考试情况为“良好”;
如果VB平均成绩在70~79分,则考试情况为“一般”;
如果VB平均成绩低于70分,则考试情况为“较差”。
selectsdept,考试情况=case
whenavg(grade)>
=90then'
好'
whenavg(grade)between80and89then'
良好'
whenavg(grade)between70and79then'
whenavg(grade)<
70then'
较差'
end
fromstudentsjoinscon=
vb'
groupbysdept
17.设有学生表:
统计每个学生的选课门数(包括没有选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则如下:
如果选课门数大于等于6,则选课情况为“多”;
如果选课门数在3~5,则选课情况为“一般”;
如果选课门在1~2,则选课情况为“偏少”。
如果没有选课,则选课情况为“未选课”。
select,count选课门数,选课情况=
case
=6then'
多'
whencountbetween3and5then'
whencountbetween1and2then'
偏少'
未选'
endfromstudentsleftjoinscon=
18.设有学生表:
统计每个学生的选课门数,并按选课门数的递增顺序显示结果。
selectsno,count(*)选课门数fromSC
19.设有学生表:
修改全部课程的学分,修改规则如下:
如果是第1~2学期开设的课程,则学分增加5分;
如果是第3~4学期开设的课程,则学分增加3分;
如果是第5~6学期开设的课程,则学分增加1分;
其他学期开设的课程学分不变。
updatecoursesetcredit=credit+
whensemesterin(1,2)then5
whensemesterin(3,4)then3
whensemesterin(5,6)then1
else0
end
20.设有学生表:
写出查询学号为“01”学生的考试成绩的SQL语句,结果按成绩降序排列,列出学号、姓名、课程名和成绩
select,Sname,Cname,Grade
fromStudentjoinSCon=
whereSno='
01'
orderbyGradedesc
21.设有学生表:
查询计算机系考试成绩最高的学生的姓名(包括并列情况)。
(请用子查询实现)
selectsnamefromstudentwheresnoin(
selecttop1withtiessnofromscjoinstudentson=
orderbygradedesc)
22.设有学生表:
用SQL语句完成以下操作。
查询计算机系每个学生的VB考试情况,列出学号、姓名、VB成绩和成绩情况,其中成绩情况的显示规则为:
如果成绩大于等于90,则成绩情况为“好”;
如果成绩在80~89,则成绩情况为“较好”;
如果成绩在70~79,则成绩情况为“一般”;
如果成绩在60~69,则成绩情况为“较差”;
如果成绩小于60,则成绩情况为“差”。
select,sname,grade,成绩情况=
whengrade>
whengradebetween80and89then'
较好'
whengradebetween70and79then'
whengradebetween60and69then'
whengrade<
60then'
差'
end
23.设有学生表:
查询VB考试成绩最低的学生的姓名、所在系和VB成绩。
Selectsname,sdept,min(grade)fromstudentsjoinscon=
Joincoursecon=
Wherecname=’VB’
24.设有学生表:
查询哪些课程没有人选,要求列出课程号和课程名。
(请用子查询实现)。
selectcno,cnamefromcoursewherecnonotin(selectcnofromsc)
25.设有学生表:
写出查询年龄在18-20岁的学生姓名、年龄和所在系的SQL语句
selectsname,sage,sdeptfromStudentwhereSagebetween18and20
26.以下是一个学生选课系统的数据库,包括三张表,分别为:
学生表、课程表、选课表,表结构如下所示:
学生
字段名称数据类型长度备注
学号char10主键
姓名varchar50
性别char2
出生日期datetime
课程
课号char4主键
课程名varchar100
学分int
选课
课号char4
成绩int
将课号为“1001”的课程学分改为4
update课程set学分=4where课号='
1001'
27.设有学生表:
查询平均成绩大于80的课程的课程名和学分。
selectcname,creditfromcourse
wherecnoin(
selectcnofromsc
havingavg(grade)>
80)
28.设有学生表:
查询年龄最大的男生的姓名和年龄。
selectsname,sagefromstudent
wheresagein(
selectmax(sage)fromstudent
wheressex='
)
andssex='
29.已知一个数据表的结构如下,表名为“Product”。
列名数据类型长度备注描述
ProductIDchar12主键商品编号
ProductNamevarchar50商品名称
ProductPricefloat商品价格
ProductMemoVarchar50
由于供应商对商品的批发价格进行调整,现需对现行商品价格进行调整,规则如下:
原价格小于10元上调8%,
原价格大于30元上调6%,
其它上调7%,
请编写一段SQL脚本完成上述功能。
UPDATEProductSETProductPrice=
CASE
WHENProductPrice<
10THENProductPrice*
WHENProductPrice>
30THENProductPrice*
ELSEProductPrice*
END
30.设有学生表:
写出查询计算机系全体女生的详细信息的SQL语句。
select*fromstudentwheresdept='
andssex='
女'
31.设有学生表:
查询C001课程的考试成绩高于该课程平均成绩的学生的学号和C001课成绩。
selectsno,gradefromsc
c001'
(
selectavg(grade)
fromsc
32.设有学生表:
统计考试平均成绩最高的前三名学生(包括并列的情况)的姓名和所在系。
createviewv7(姓名,所在系)as
createviewv7(姓名,所在系)as
selectsname,sdeptfromstudent
wheresnoin(
selecttop3withtiessnofromsc
orderbyavg(grade)desc)
33.设有学生表:
统计每个系的学生人数。
列出系和系学生人数。
selectsdept,count(*)学生人数fromstudent
34.设“图书”表的结构为:
Books(Bid,BName,Price),分别代表书号、书名和价格
写出实现下列查询要求的SQL语句。
查询所有书籍信息,列出:
书号、书名、价格和等级。
其中“等级”根据价格决定:
对价格小于等于20元的等级显示为“很便宜”,
对价格小于等于50元且大于20元的等级显示为“中等”,
对价格大于50元等级显示为:
“很贵”。
Select书号,书名,价格,
case
whenPrice<
=20then'
很便宜'
=50and价格>
20then'
中等'
很贵'
endas等级
fromBooks
35.设有学生表:
SC(Sno,Cno,Gra