Mysql查询语句,select,inner/left/right join on,group by.....[例题及答案]
创建如下表格,命名为stu_info, course_i, score_table.
题目:
有如图所示的三张表结构,学生信息表(stu_info),课程信息表(course_i),分数信息表(score_table)
题目:
1.查询出每个学生所选修的课程的数量和所选修的课程的考试的平均分
2.查询出每门课程的选修的学生的个数和学生考试的总分
3.查询出性别一样并且年龄一样的学生的信息
4.查询出学分一样的课程信息
5.查询出参加了考试的学生的学号,姓名,课程号和分数
6.查询出参加了考试的学生的学号,课程号,课程名,课程学分和分数
7.查询出没有参加考试的学生的学号和姓名
8.查询出没有学生选修(即没有学生考试)的课程编号、课程名和学分
9.查询出姓名中有字母a的学生的信息
10.查询出选修了2门课程以上的并且考试平均分在70以上的学生的学号和考试平均分以及选修课程的数量
原创答案,仅作参考:
-- 1.查询出每个学生所选修的课程的数量和所选修的课程的考试的平均分
SELECT stu_info.stu_name,COUNT(course_i.course_id),AVG(score_table.score) FROM course_i
INNER JOIN score_table ON course_i.course_id=score_table.course_id
LEFT JOIN stu_info ON score_table.stu_id=stu_info.stu_id GROUP BY score_table.stu_id;
-- 2.查询出每门课程的选修的学生的个数和学生考试的总分
SELECT course_i.course_name,COUNT(score_table.stu_id),SUM(score_table.score)FROM course_i
right JOIN score_table ON course_i.course_id=score_table.course_id
LEFT JOIN stu_info ON score_table.stu_id=stu_info.stu_id GROUP BY course_i.course_id;
-- 3.查询出性别一样并且年龄一样的学生的信息
SELECT s1.* FROM stu_info AS s1 LEFT JOIN stu_info AS s2
ON s1.stu_age=s2.stu_age and s1.stu_sex=s2.stu_sex
WHERE s1.stu_id!=s2.stu_id;
-- 4.查询出学分一样的课程信息
SELECT i1.* FROM course_i as i1 LEFT JOIN course_i as i2
ON i1.course_marks=i2.course_marks WHERE i1.course_id!=i2.course_id
GROUP BY i1.course_id;
-- 5.查询出参加了考试的学生的学号,姓名,课程号和分数
SELECT stu_info.stu_id,stu_info.stu_name,score_table.course_id,score_table.score
FROM stu_info LEFT JOIN score_table
ON stu_info.stu_id=score_table.stu_id;
-- 6.查询出参加了考试的学生的学号,课程号,课程名,课程学分和分数
SELECT stu_info.stu_id,stu_info.stu_name,score_table.course_id,
course_i.course_name,course_i.course_marks,score_table.score
FROM stu_info LEFT JOIN score_table
ON stu_info.stu_id=score_table.stu_id
LEFT JOIN course_i ON score_table.course_id=course_i.course_id;
-- 7.查询出没有参加考试的学生的学号和姓名
SELECT stu_id,stu_name FROM stu_info
WHERE stu_id not in (SELECT stu_id FROM score_table);
-- 8.查询出没有学生选修(即没有学生考试)的课程编号、课程名和学分
SELECT * FROM course_i WHERE course_id
NOT in (SELECT course_id FROM score_table);
-- 9.查询出姓名中有字母a的学生的信息
SELECT * FROM stu_info WHERE stu_name LIKE "%a%";
-- 10.查询出选修了2门课程以上的并且考试平均分在70以上的学生的学号和考试平均分以及选修课程的数量
SELECT score_table.stu_id,AVG(score_table.score),COUNT(score_table.course_id)
FROM score_table GROUP BY stu_id HAVING AVG(score_table.score)>70;
Mysql查询语句,select,inner/left/right join on,group by.....[例题及答案]的更多相关文章
- MySQL查询语句(select)详解(2)
7.子查询 当进行查询的时候,需要的条件是另外一个select语句的结果,这时候就要用到子查询 用于子查询的主要关键字有:in,not in,=,!=,exists,not exists等. 以下两张 ...
- MySQL查询语句(select)详解(1)
1.查询记录 select*from 表名 [where 条件];eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来select fiel ...
- SQL复杂查询语句-SELECT * FROM cs WHERE score>70 GROUP BY s_id HAVING COUNT(*)>1
如果同时存在where,group by,的时候的执行顺序应该是这样的: 1,首先where后面添加条件把数据进行了过滤,返回一个结果集 2,然后group by将上面返回的结果集进行分组,返回一个结 ...
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
- MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:
- MYSQL查询语句大全集锦
MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...
- php面试专题---MYSQL查询语句优化
php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...
- Mysql查询语句执行过程
Mysql查询语句执行过程 Mysql分为server层和存储引擎两部分,或许可以再加一层连接层 连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注 ...
- mysql查询语句理解
看一个查询语句 ,)) as passcount FROM (SELECT b.user,b.full_name,b.user_group From login_log a LEFT JOIN vic ...
- mysql查询语句,通过limit来限制查询的行数。
mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...
随机推荐
- 【Flink】使用之前,先简单了解一下Flink吧!
目录 Flink简单介绍 概述 无边界数据流和有边界数据流 技术栈核心组成 架构体系 重要角色 Flink与Spark架构概念转换 Flink简单介绍 概述 在使用Flink之前,我们需要大概知 ...
- 【Kafka】Kafka集群环境搭建
目录 一.初始环境准备 二.下载安装包并上传解压 三.修改配置文件 四.启动ZooKeeper 五.启动Kafka集群 一.初始环境准备 必须安装了JDK和ZooKeeper,并保证Zookeeper ...
- C#MVC通过AJAX调用API方法进行上传下载
//这是写的一个类,具体是上传图片的上传和下载 public class FileResult { public int Code { get; set; } pub ...
- js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引
实现输入拼音(可以使用拼音首字母来查),来查询出已经存在于页面的数据 注意:这种写法只能适用于页面中已经存在的数据进行检索,大体意思是将本页内的数据拼接成一个字符串,然后通过该字符串去检索匹配的字符串 ...
- docker build报错
docker build 遇到问题 "can not stat ... APPData\Local\Application Data" 解决方法:
- java ->IO流_转换流
转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...
- 蒲公英 · JELLY技术周刊 Vol.07: EcmaScript 2020 -- 所有你想要知道的都在这
「蒲公英」期刊,每周更新,我们专注于挖掘「基础技术.工程化.跨端框架技术.图形编程.服务端开发.桌面开发.人工智能」等多个大方向的业界热点,并加以专业的解读:不仅如此,我们还精选凹凸技术文章,向大家呈 ...
- 感觉shopex现在的升级方式太慢了
我是说产品的更新,484,485是一个经典的版本,那时候免费,shopex 系统市场占用率很高.但是485以后呢,只有小版本的更新,fxw ,ekd 都是改进版本吧,没用特别大幅度的更新.5年前,10 ...
- vue组件试错
[Vue warn]: Property or method "child1" is not defined on the instance but referenced duri ...
- JS的函数和对象四
复习 数组 toString/join/concat/slice/splice/reverse/sort/ push/pop/unshift/shift 字符串 new String(2) / S ...