sql课上作业与答案 (1)

上传人:第*** 文档编号:34064246 上传时间:2018-02-20 格式:DOCX 页数:4 大小:24.08KB
返回 下载 相关 举报
sql课上作业与答案 (1)_第1页
第1页 / 共4页
sql课上作业与答案 (1)_第2页
第2页 / 共4页
sql课上作业与答案 (1)_第3页
第3页 / 共4页
sql课上作业与答案 (1)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《sql课上作业与答案 (1)》由会员分享,可在线阅读,更多相关《sql课上作业与答案 (1)(4页珍藏版)》请在金锄头文库上搜索。

1、1、 查询 xs 表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name 和 mark。Select 学号 as number,姓名 as name,总学分 as mark from xs where 专业名= 计算机;2、查询 xs 表中计算机专业各同学的学号、姓名和总学分,对总学分按如下规则进行替换:若总学分为空值,替换为“尚未选课” ;若总学分小于 50,替换为“不及格” ;若总学分在 5052 之间,替换为 “合格” ;若总学分大于 52,替换为“优秀” 。总学分列的标题更改为“等级” 。select 学号,姓名,casewhen 总学分 is nul

2、l then 尚未选课when 总学分 =50 and 总学分 50;1 row in set7、 求选修 101 课程的学生的最高分和最低分。select max(成绩) as 最高分 ,min(成绩) as 最低分 from xs_kc where 课程号=101; 1 row in set8、 求学号 081101 的学生所学课程的总成绩。select sum(成绩) as 总成绩 from xs_kc where 学号=81101;9、 求选修 101 课程的学生的平均成绩。select 学号,avg(成绩) from xs_kc where 课程号=101;10、 求选修 101 课

3、程的成绩的方差。select variance(成绩) from xs_kc where 课程号=101;11、 求选修 101 课程的成绩的标准差。select stddev(成绩) from xs_kc where 课程号=101;12、 求选修了 206 课程的学生的学号。select group_concat(学号) from xs_kc where 课程号=206;13、 从 xs 表中检索出所有学生的信息,并使用表别名 student。select * from xs as student;14、 查找 xscj 数据库中所有学生选过的课程名和课程号select distinct

4、kc.课程名,xs_kc.课程号 from kc,xs_kc where kc.课程号=xs_kc.课程号;3 rows in set15、 用 FROM 子句的 JOIN 关键字表达下列查询:查找选修了 206 课程且成绩在 80 分以上的学生姓名及成绩。select 姓名,成绩 from xs inner join xs_kc on xs.学号=xs_kc.学号 where 课程号=206 and 成绩 80;3 rows in set16、 用 FROM 的 JOIN 关键字表达下列查询:查找选修了“计算机基础”课程且成绩在80 分以上的学生学号、姓名、课程名及成绩。select xs.

5、学号 ,姓名,课程名,成绩 from xs join xs_kc on xs.学号=xs_kc.学号 join kc on xs_kc.课程号 =kc.课程号 where 课程名=计算机基础 and 成绩 80;8 rows in set17、 查找 xscj 数据库中课程不同、成绩相同的学生的学号、课程号和成绩。select a.学号 ,a.课程号,b.课程号,a.成绩 from xs_kc as a join xs_kc as b on a.成绩=b.成绩 and a.学号 =b.学号 and a.课程号 != b.课程号;2 rows in set18、 查找所有学生情况及他们选修的课程

6、号,若学生未选修任何课,也要包括其情况。select xs_kc.*,课程号 from xs left outer join xs_kc on xs.学号=xs_kc.学号;19、 查找被选修了的课程的选修情况和所有开设的课程名。select xs_kc.*,课程名 from xs_kc right join kc on xs_kc.课程号=kc.课程号;20、 列出学生所有可能的选课情况。mysql select 学号,姓名,课程号, 课程名- from xs cross join kc;21、 查询 xscj 数据库 xs 表中学号为 81101 的学生的情况。select 学号,姓名,总

7、学分 from xs where 学号=81101;1 row in set22、 查询 xs 表中总学分大于 50 分的学生的情况。select * from xs where 总学分 50;23、 查询 xs 表中备注为空的同学的情况。select * from xs where 备注 is null;mysql select * from xs where 备注 null;24、 查询 xs 表中专业为计算机,性别为女(0)的同学的情况。select * from xs where 专业名 =计算机 and 性别=0;25、 查询 xscj 数据库 xs 表中姓“王”的学生学号、姓名及性

8、别。select 学号,姓名,性别 from xs where 姓名 like 王%;26、 查询 xscj 数据库 xs 表中,学号倒数第二个数字为 0 的学生的学号、姓名及专业名。select 学号,姓名,专业名 from xs where 学号 like %0_;|查询 xs 表中名字包含下画线的学生学号和姓名。select 学号,姓名 from xs where 学号 like %#_% escape #;28、查询 xscj 数据库 xs 表中不在 1993 年出生的学生情况。select * from xs where 出生时间1993;29、查询 xs 表中专业名为“计算机” 、

9、 “通信工程”或“无线电 ”的学生的情况。select * from xs where 专业名 =计算机 or 专业名= 通信工程 or 专业名=无线电;30、查询 xscj 数据库中总学分尚不定的学生情况。select * from xs where 总学分 is null;31、查找在 xscj 数据库中选修了课程号为 206 的课程的学生的姓名、学号。select 姓名,学号 from xs where 学号 in(select 学号 from xs_kc where 课程号=206);32、查找未选修离散数学的学生的姓名、学号、专业名。select 姓名,学号 ,专业名 from xs

10、 where 学号 not in (select 学号 from xs_kc where 课程号 in (select 课程号 from xs where 课程号= 离散数学);33、查找选修了离散数学的学生学号。select 学号 from xs_kc where 课程号 = (select 课程号 from kc where 课程名=离散数学);34、查找 xs 表中比所有计算机系的学生年龄都大的学生学号、姓名、专业名、出生日期。select 学号,姓名,专业名, 出生时间 from xs where 出生时间 any(select 成绩 from xs_kc where 课程号=101)

11、;36、查找选修 206 号课程的学生姓名。select 姓名 from xs where exists (select * from xs_kc where 课程号=206 and 学号=xs.学号);37、查找选修了全部课程的同学的姓名。select 姓名 from xs where not exists (select * from kc where not exists (select * from xs_kc where 学号=xs.学号 and 课程号=kc.课程号);38、从 xs 表中查找总学分大于 50 分的男同学的姓名和学号。select 姓名,学号 from xs whe

12、re 总学分50 and 性别=1;select 姓名,学号 from xs where 学号 in (select 学号 from xs where 总学分50 and 性别=1);select 姓名, 学号, 总学分 from (select 姓名, 学号,性别,总学分 from xs where 总学分 50) as student where 性别=1;39、从 xs 表中查找所有女学生的姓名、学号,以及与 81101 号学生的年龄差距。select 姓名, 学号,year(出生时间)-year(select 出生时间 from xs where 学号=81101 ) ) as 年龄差

13、距 from xs where 性别=0;40、查找与 81101 号学生性别相同、总学分相同的学生学号和姓名。select 学号,姓名 from xs where (性别,总学分)=(select 性别,总学分 from xs where 学号=81101);41、将 xscj 数据库中各专业名输出。select 专业名 from xs group by 专业名;42、求 xscj 数据库中各专业的学生数。select 专业名,count(*) as 学生数 from xs group by 专业名;43、求被选修的各门课程的平均成绩和选修该课程的人数。select 课程号,avg(成绩)

14、as 平均成绩 ,count(*) as 总人数 from xs_kc group by 课程号;44、在 xscj 数据库上产生一个结果集,包括每个专业的男生人数、女生人数、总人数,以及学生总人数。select 专业名,性别,count(*) as 总人数 from xs group by 专业名 ,性别 with rollup;45、在 xscj 数据库上产生一个结果集,包括每门课程各专业的平均成绩、每门课程的总平均成绩和所有课程的总平均成绩。select 课程名,专业名,avg(成绩 ) as 平均成绩 from xs_kc,kc,xs where xs_kc.课程号 =kc.课程号 a

15、nd xs_kc.学号=xs. 学号 group by 课程名,专业名 with rollup;46、查找 xscj 数据库中平均成绩在 85 分以上的学生的学号和平均成绩。select 学号,avg(成绩) as 平均成绩 from xs_kc group by 学号 having avg(成绩)=85;47、查找选修课程超过 2 门且成绩都在 80 分以上的学生的学号。select 学号 from xs_kc group by 学号 having count(*) 2;48、查找通信工程专业平均成绩在 85 分以上的学生的学号和平均成绩。select 学号 ,avg(成绩) as 平均成绩

16、 from xs_kc where 学号 in (select 学号 from xs where 专业名=通信工程 ) group by 学号 having avg(成绩) =85;49、将通信工程专业的学生按出生日期先后排序。select 学号,姓名,专业名, 出生时间 from xs where 专业名 =通信工程 order by 出生时间;50、将计算机专业学生按其平均成绩排列。select 学号,姓名, 专业名 from xs where 专业名=计算机 order by (select avg(成绩) from xs_kc group by xs_kc.学号 having xs.学号=xs_kc.学号);51、查找 xs 表中学号最靠前的 5 位学生的信息。select * from xs order by 学号 li

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号