SQL课上作业与答案-(1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

精选1、查询xs表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。Select学号asnumber,姓名asname,总学分asmarkfromxswhere专业名=计算机;2、查询xs表中计算机专业各同学的学号、姓名和总学分,对总学分按如下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为“优秀”。总学分列的标题更改为“等级”。select学号,姓名,casewhen总学分isnullthen尚未选课when总学分50then不及格when总学分=50and总学分=52then合格else优秀endas等级fromxswhere专业名=计算机;3、按120分制重新计算成绩,显示xs_kc表中学号为81101的学生成绩信息。select学号,课程号,成绩*1.2as成绩120fromxs_kcwhere学号=81101;3rowsinset4、对xscj数据库的xs表只选择专业名和总学分,消除结果集中的重复行。selectdistinct专业名,总学分fromxs;8rowsinset5、统计备注不为空的学生数目。selectcount(备注)as人数fromxswhere备注isnotnull;6、统计总学分在50分以上的人数。selectcount(总学分)as人数fromxswhere总学分50;1rowinset7、求选修101课程的学生的最高分和最低分。selectmax(成绩)as最高分,min(成绩)as最低分fromxs_kcwhere课程号=101;1rowinset8、求学号081101的学生所学课程的总成绩。selectsum(成绩)as总成绩fromxs_kcwhere学号=81101;9、求选修101课程的学生的平均成绩。select学号,avg(成绩)fromxs_kcwhere课程号=101;10、求选修101课程的成绩的方差。selectvariance(成绩)fromxs_kcwhere课程号=101;11、求选修101课程的成绩的标准差。selectstddev(成绩)fromxs_kcwhere课程号=101;精选12、求选修了206课程的学生的学号。selectgroup_concat(学号)fromxs_kcwhere课程号=206;13、从xs表中检索出所有学生的信息,并使用表别名student。select*fromxsasstudent;14、查找xscj数据库中所有学生选过的课程名和课程号selectdistinctkc.课程名,xs_kc.课程号fromkc,xs_kcwherekc.课程号=xs_kc.课程号;3rowsinset15、用FROM子句的JOIN关键字表达下列查询:查找选修了206课程且成绩在80分以上的学生姓名及成绩。select姓名,成绩fromxsinnerjoinxs_kconxs.学号=xs_kc.学号where课程号=206and成绩80;3rowsinset16、用FROM的JOIN关键字表达下列查询:查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩。selectxs.学号,姓名,课程名,成绩fromxsjoinxs_kconxs.学号=xs_kc.学号joinkconxs_kc.课程号=kc.课程号where课程名=计算机基础and成绩80;8rowsinset17、查找xscj数据库中课程不同、成绩相同的学生的学号、课程号和成绩。selecta.学号,a.课程号,b.课程号,a.成绩fromxs_kcasajoinxs_kcasbona.成绩=b.成绩anda.学号=b.学号anda.课程号!=b.课程号;2rowsinset18、查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况。selectxs_kc.*,课程号fromxsleftouterjoinxs_kconxs.学号=xs_kc.学号;19、查找被选修了的课程的选修情况和所有开设的课程名。selectxs_kc.*,课程名fromxs_kcrightjoinkconxs_kc.课程号=kc.课程号;20、列出学生所有可能的选课情况。mysqlselect学号,姓名,课程号,课程名-fromxscrossjoinkc;21、查询xscj数据库xs表中学号为81101的学生的情况。select学号,姓名,总学分fromxswhere学号=81101;1rowinset22、查询xs表中总学分大于50分的学生的情况。select*fromxswhere总学分50;23、查询xs表中备注为空的同学的情况。select*fromxswhere备注isnull;mysqlselect*fromxswhere备注=null;24、查询xs表中专业为计算机,性别为女(0)的同学的情况。select*fromxswhere专业名=计算机and性别=0;25、查询xscj数据库xs表中姓“王”的学生学号、姓名及性别。select学号,姓名,性别fromxswhere姓名like王%;26、查询xscj数据库xs表中,学号倒数第二个数字为0的学生的学号、姓名及专业名。select学号,姓名,专业名fromxswhere学号like%0_;|查询xs表中名字包含下画线的学生学号和姓名。select学号,姓名fromxswhere学号like%#_%escape#;精选28、查询xscj数据库xs表中不在1993年出生的学生情况。select*fromxswhere出生时间=1993;29、查询xs表中专业名为“计算机”、“通信工程”或“无线电”的学生的情况。select*fromxswhere专业名=计算机or专业名=通信工程or专业名=无线电;30、查询xscj数据库中总学分尚不定的学生情况。select*fromxswhere总学分isnull;31、查找在xscj数据库中选修了课程号为206的课程的学生的姓名、学号。select姓名,学号fromxswhere学号in(select学号fromxs_kcwhere课程号=206);32、查找未选修离散数学的学生的姓名、学号、专业名。select姓名,学号,专业名fromxswhere学号notin(select学号fromxs_kcwhere课程号in(select课程号fromxswhere课程号=离散数学));33、查找选修了离散数学的学生学号。select学号fromxs_kcwhere课程号=(select课程号fromkcwhere课程名=离散数学);34、查找xs表中比所有计算机系的学生年龄都大的学生学号、姓名、专业名、出生日期。select学号,姓名,专业名,出生时间fromxswhere出生时间all(select出生时间fromxswhere专业名=计算机);35、查找xs_kc表中课程号206的成绩不低于课程号101的最低成绩的学生的学号。select学号fromxs_kcwhere课程号=206and成绩any(select成绩fromxs_kcwhere课程号=101);36、查找选修206号课程的学生姓名。select姓名fromxswhereexists(select*fromxs_kcwhere课程号=206and学号=xs.学号);37、查找选修了全部课程的同学的姓名。select姓名fromxswherenotexists(select*fromkcwherenotexists(select*fromxs_kcwhere学号=xs.学号and课程号=kc.课程号));38、从xs表中查找总学分大于50分的男同学的姓名和学号。select姓名,学号fromxswhere总学分50and性别=1;select姓名,学号fromxswhere学号in(select学号fromxswhere总学分50and性别=1);select姓名,学号,总学分from(select姓名,学号,性别,总学分fromxswhere总学分50)asstudentwhere性别=1;39、从xs表中查找所有女学生的姓名、学号,以及与81101号学生的年龄差距。select姓名,学号,year(出生时间)-year((select出生时间fromxswhere学号=81101))as年龄差距fromxswhere性别=0;40、查找与81101号学生性别相同、总学分相同的学生学号和姓名。select学号,姓名fromxswhere(性别,总学分)=(select性别,总学分fromxswhere学号=81101);41、将xscj数据库中各专业名输出。select专业名fromxsgroupby专业名;42、求xscj数据库中各专业的学生数。select专业名,count(*)as学生数fromxsgroupby专业名;43、求被选修的各门课程的平均成绩和选修该课程的人数。select课程号,avg(成绩)as平均成绩,count(*)as总人数fromxs_kcgroupby课程号;精选44、在xscj数据库上产生一个结果集,包括每个专业的男生人数、女生人数、总人数,以及学生总人数。select专业名,性别,count(*)as总人数fromxsgroupby专业名,性别withrollup;45、在xscj数据库上产生一个结果集,包括每门课程各专业的平均成绩、每门课程的总平均成绩和所有课程的总平均成绩。select课程名,专业名,avg(成绩)as平均成绩fromxs_kc,kc,xswherexs_kc.课程号=kc.课程号andxs_kc.学号=xs.学号groupby课程名,专业名withrollup;46、查找xscj数据库中平均成绩在85分以上的学生的学号和平均成绩。select学号,avg(成绩)as平均成绩fromxs_kcgroupby学号havingavg(成绩)=85;47、查找选修课程超过2门且成绩都在80分以上的学生的学号。select学号fromxs_kcgroupby学号havingcount(*)2;48、查找通信工程专业平均成绩在85分以上的学生的学号和平均成绩。select学号,avg(成绩)as平均成绩fromxs_kcwhere学号in(select学号fromxswhere专业名=通信工程)groupby学号havingavg(成绩)=85;49、将通信工程专业的学生按出生日期先后排序。select学号,姓名,专业名,出生时间fromxswhere专业名=通信工程orderby出生时间;50、将计算机专业学生按其平均成绩排列。select学号,姓名,专业名fromxswhere专业名=计算机orderby(selectavg(成绩)fromxs_kcgroupbyxs_kc.学号havingxs.学号=xs_kc.学号);51、查找xs表中学号最靠前的5位学生的信息。select*fromxsorderby学号limit5;52、查找xs表中从第4位同学开始的5位学生的信息。select*fromxsorderby学号limit3,5;53、查找学号为81101和学号为81210的两位同学的信息。select*fromxswhere学号=81101unionselect*fromxswhere学号=81210;54、一行一行地浏览KC表中满足要求的内容,要求第一行为学分大于4的第一行数据。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功