数据库(Mysql)----mysql查询练习(3、实操)

Mysql数据库 专栏收录该内容
15 篇文章 0 订阅

– 17.查询班级是’95031’班学生每门课的平均分

select c_no,AVG(sc_degree) from score WHERE s_no IN (select s_no from student where s_class = '95031') GROUP BY c_no;

select c_no,AVG(sc_degree) from score AS sc LEFT JOIN student AS s ON sc.s_no = s.s_no WHERE s.s_class = '95031' GROUP BY sc.c_no;

select sc.c_no,AVG(sc.sc_degree) FROM student AS s, score AS SC  WHERE s.s_class = '95031' AND s.s_no = sc.s_no GROUP BY sc.c_no ;

在这里插入图片描述
进阶,加入课程名称:

SELECT sc.c_no, c.c_name, AVG(sc.sc_degree) FROM student AS s, score AS SC, course AS c  WHERE s.s_class = '95031' AND s.s_no = sc.s_no AND c.c_no = sc.c_no GROUP BY sc.c_no ;

在这里插入图片描述

– 18.查询选修"3-105"课程的成绩高于’109’号同学’3-105’成绩 的所有同学的记录

SELECT * FROM student AS s, score AS sc WHERE sc.c_no = '3-105' AND sc.sc_degree > (SELECT sc_degree FROM score WHERE s_no = '109' AND c_no = '3-105') AND s.s_no = sc.s_no;

在这里插入图片描述
– 19.查询成绩高于学号为’109’,课程号为’3-105’的成绩的所有记录

SELECT * FROM score WHERE sc_degree >(SELECT sc_degree FROM score WHERE s_no = '109' AND c_no = '3-105');

在这里插入图片描述
– 20.查询所有学号为108.101的同学同年出生的所有学生的s_no,s_name和s_birthday

SELECT * FROM student WHERE YEAR(s_birthday) IN (SELECT YEAR(s_birthday) FROM student WHERE s_no IN('108','101'));

在这里插入图片描述

– 21.查询 张旭 教师任课的学生的成绩

select * from student where s_no IN (SELECT s_no FROM score WHERE c_no = (SELECT c_no FROM course WHERE t_no = (SELECT t_no FROM teacher WHERE t_name='张旭')));

在这里插入图片描述
– 22.查询选修课程的同学人数多余 5 人的教师姓名

SELECT * FROM teacher WHERE t_no IN(SELECT t_no FROM course WHERE c_no IN (SELECT c_no FROM score GROUP BY c_no HAVING COUNT(s_no) > 5));

Empty set (0.00 sec) 没有符合条件的
为了效果,添加数据:

INSERT INTO score VALUES('101','3-105','90');
INSERT INTO score VALUES('102','3-105','91');
INSERT INTO score VALUES('104','3-105','89');

再次查询可得:
在这里插入图片描述
– 23.查询student 表中 不姓"王"的同学的记录

SELECT * FROM student WHERE s_name NOT LIKE '王%'; 

在这里插入图片描述
– 24. 查询student 中每个学生的姓名和年龄(当前时间 - 出生年份)

SELECT s_name, YEAR(NOW()) - YEAR(s_birthday) AS age FROM student;

在这里插入图片描述
– 25. 查询student中最大和最小的 s_birthday的值

SELECT MAX(s_birthday),MIN(s_birthday) FROM student;

在这里插入图片描述
– 26. 查询和"李军"同性别的所有同学的s_name

SELECT s_name, s_sex FROM student WHERE s_SEX = (SELECT s_sex FROM student WHERE s_name = '李军');

在这里插入图片描述
– 27. 查询所有选修’计算机导论’课程的’男’同学的成绩表

SELECT * FROM score WHERE c_no = (SELECT c_no FROM course WHERE c_name = '计算机导论' ) AND s_no IN(SELECT s_no FROM student WHERE s_sex = '男');

在这里插入图片描述

  • 3
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值