创建如下表格,命名为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.....[例题及答案]的更多相关文章

  1. MySQL查询语句(select)详解(2)

    7.子查询 当进行查询的时候,需要的条件是另外一个select语句的结果,这时候就要用到子查询 用于子查询的主要关键字有:in,not in,=,!=,exists,not exists等. 以下两张 ...

  2. MySQL查询语句(select)详解(1)

    1.查询记录 select*from 表名 [where 条件];eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来select fiel ...

  3. SQL复杂查询语句-SELECT * FROM cs WHERE score>70 GROUP BY s_id HAVING COUNT(*)>1

    如果同时存在where,group by,的时候的执行顺序应该是这样的: 1,首先where后面添加条件把数据进行了过滤,返回一个结果集 2,然后group by将上面返回的结果集进行分组,返回一个结 ...

  4. MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图

    http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...

  5. MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)

    在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:

  6. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  7. php面试专题---MYSQL查询语句优化

    php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...

  8. Mysql查询语句执行过程

    Mysql查询语句执行过程   Mysql分为server层和存储引擎两部分,或许可以再加一层连接层   连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注 ...

  9. mysql查询语句理解

    看一个查询语句 ,)) as passcount FROM (SELECT b.user,b.full_name,b.user_group From login_log a LEFT JOIN vic ...

  10. mysql查询语句,通过limit来限制查询的行数。

    mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...

随机推荐

  1. Kubernetes中 Pod 是怎样被驱逐的?

    前言 在 Kubernetes 中,Pod 使用的资源最重要的是 CPU.内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 IO).可压缩资源不可能导致 Pod 被驱 ...

  2. uCOS2014.1.11

    typedef unsigned char  BOOLEAN;typedef unsigned char  INT8U;      /* Unsigned  8 bit quantity   */ty ...

  3. HMM-维特比算法理解与实现(python)

    HMM-前向后向算法理解与实现(python) HMM-维特比算法理解与实现(python) 解码问题 给定观测序列 \(O=O_1O_2...O_T\),模型 \(\lambda (A,B,\pi) ...

  4. Apache Poi实现excel解析

    一.说明 1.本文通过使用 poi 工具解析 excel 表格数据,实现导入导出 2.excel目前有两种格式 2003版本的 excel.xls 与 2007版本的 excel.xlsx ,注意两种 ...

  5. 进程和线程—Python多线程编程

    进程和线程 进程 进程是一个执行中的程序.每个进程都拥有自己的地址空间.内存.数据栈以及其它用于跟踪执行的辅助数据. 一个程序运行就是一个进程(比如 QQ.微信或者其它软件): 进程可以通过派生新的进 ...

  6. 👋嗨,你有一份微信好友报告待查收~

    全部代码都已上传至我的KLab-

  7. js 控制窗口跳转

    使用iframe 或者使用子窗口时,session 失效时是浏览器地址转换 相关js代码:if(top!=self){ if(top.location != self.location) top.lo ...

  8. 「雕爷学编程」Arduino动手做(23)——矩形脉冲发生器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  9. Djano之ORM多表查询操作

    # 把 model 转化为 迭代器去循环 MODEL.objects.all().iterator() # 等同于 values, values_list, 但是 only 这种方式 获取字段属性依旧 ...

  10. tcp/ip 学习笔记zz

    http://blog.csdn.net/goodboy1881/category/204448.aspx 坚持看!