SQL面試題 三(單表、多表查詢)
一、給定一張學生成績表tb_grade:學號,姓名,科目號,科目名,分數。(如下表)
(select * from tb_grade order by Sno,Cno;)
+------+-------+-----+-------+-------+
| Sno | Sname | Cno | Cname | score |
+------+-------+-----+-------+-------+
| 1001 | 李菲 | 1 | 語文 | 86 |
| 1001 | 李菲 | 2 | 數學 | 56 |
| 1001 | 李菲 | 3 | 物理 | 48 |
| 1001 | 李菲 | 4 | 化學 | 90 |
| 1001 | 李菲 | 5 | 英語 | 57 |
| 1002 | 王琪 | 1 | 語文 | 90 |
| 1002 | 王琪 | 2 | 數學 | 68 |
| 1002 | 王琪 | 3 | 物理 | 87 |
| 1002 | 王琪 | 4 | 化學 | 68 |
| 1002 | 王琪 | 5 | 英語 | 45 |
| 1003 | 楊陽 | 1 | 語文 | 86 |
| 1003 | 楊陽 | 2 | 數學 | 56 |
| 1003 | 楊陽 | 3 | 物理 | 48 |
| 1003 | 楊陽 | 4 | 化學 | 90 |
| 1003 | 楊陽 | 5 | 英語 | 52 |
| 1004 | 和樹 | 1 | 語文 | 82 |
| 1004 | 和樹 | 2 | 數學 | 56 |
| 1004 | 和樹 | 3 | 物理 | 67 |
| 1004 | 和樹 | 4 | 化學 | 30 |
| 1004 | 和樹 | 5 | 英語 | 68 |
+------+-------+-----+-------+-------+
1、查詢不及格科目數大於等於2的學生學號和不及格科目數量:
MySQL> select Sno,count(score) as '不及格科目數' from tb_grade where score<60 group by Sno having count(score)>=2;
+------+--------------+
| Sno | 不及格科目數 |
+------+--------------+
| 1001 | 3 |
| 1003 | 3 |
| 1004 | 2 |
+------+--------------+
2、查詢不及格科目數大於等於2的學生學號和學生姓名:
MySQL> select Sno,Sname from tb_grade where score<60 group by Sno having count(score)>=2;
+------+-------+
| Sno | Sname |+------+-------+
| 1001 | 李菲 |
| 1003 | 楊陽 |
| 1004 | 和樹 |
+------+-------+
3、查詢不及格科目數大於等於2的學生學號、學生姓名、科目號、科目名稱和分數,並按學號降序、科目號升序排序:
MySQL> select * from tb_grade where score<60 and Sno in( select Sno from tb_grade where score<60 group by Sno having count(score)>=2 ) order by Sno desc,Cno asc;
+------+-------+-----+-------+-------+
| Sno | Sname | Cno | Cname | score |
+------+-------+-----+-------+-------+
| 1004 | 和樹 | 2 | 數學 | 56 |
| 1004 | 和樹 | 4 | 化學 | 30 |
| 1003 | 楊陽 | 2 | 數學 | 56 |
| 1003 | 楊陽 | 3 | 物理 | 48 |
| 1003 | 楊陽 | 5 | 英語 | 52 |
| 1001 | 李菲 | 2 | 數學 | 56 |
| 1001 | 李菲 | 3 | 物理 | 48 |
| 1001 | 李菲 | 5 | 英語 | 57 |
+------+-------+-----+-------+-------+
二、有三張表:class、student、score
班級表 class:
+-------+---------+---------+
| classID | className |
+---------+-----------+
| 1 | 一班 |
| 2 | 二班 |
| 3 | 三班 |
+---------+-----------+
學生表 student:
+-------+---------+---------+
| stuID | classID | stuName |
+-------+---------+---------+
| 1001 | 1 | 張三 |
| 1002 | 1 | 李麗 |
| 1003 | 1 | 錢封 |
| 1004 | 2 | 楊國 |
| 1005 | 2 | 小樣 |
| 1006 | 2 | 區天 |
| 1007 | 3 | 李三宅 |
| 1008 | 3 | 黃武 |
| 1009 | 3 | 趙六 |
+-------+---------+---------+
分數表 score:
+----------+-------+--------+-------+
| courseID | stuID | course | score |
+----------+-------+--------+-------+
| 2 | 1001 | 數學 | 73 |
| 3 | 1001 | 英語 | 79 |
| 1 | 1001 | 語文 | 81 |
| 3 | 1002 | 英語 | 87 |
| 2 | 1002 | 數學 | 83 |
| 1 | 1002 | 語文 | 79 |
| 1 | 1003 | 語文 | 65 |
| 3 | 1003 | 英語 | 65 |
| 2 | 1003 | 數學 | 97 |
| 1 | 1004 | 語文 | 78 |
| 3 | 1004 | 英語 | 78 |
| 2 | 1004 | 數學 | 86 |
| 1 | 1005 | 語文 | 67 |
| 3 | 1005 | 英語 | 88 |
| 2 | 1005 | 數學 | 89 |
| 2 | 1006 | 數學 | 90 |
| 3 | 1006 | 英語 | 92 |
| 1 | 1006 | 語文 | 98 |
| 1 | 1007 | 語文 | 85 |
| 2 | 1007 | 數學 | 78 |
| 3 | 1007 | 英語 | 72 |
| 1 | 1008 | 語文 | 78 |
| 3 | 1008 | 英語 | 77 |
| 2 | 1008 | 數學 | 85 |
| 3 | 1009 | 英語 | 94 |
| 2 | 1009 | 數學 | 91 |
| 1 | 1009 | 語文 | 68 |
+----------+-------+--------+-------+
1、查詢各班各科分數最高的學生學號,姓名,班級名稱,科目名稱,分數:
MySQL>
select stu.stuID,stu.stuName,c.classID,c.className, sc.score from class c,student stu,
score sc where c.classID=stu.classID and stu.stuID=sc.stuID order by c.classID,stu.stuID;
轉載自:https://blog.csdn.net/yangyi22/article/details/7483859
相關文章
- SQL查詢的:子查詢和多表查詢SQL
- SQL 三表聯合查詢SQL
- 多表查詢建表語句
- Sql Server系列:多表連線查詢SQLServer
- SQL複雜查詢多表連線SQL
- SQL三表左關聯查詢SQL
- 多表查詢
- Spring Data Jpa 的簡單查詢多表查詢HQL,SQL ,動態查詢, QueryDsl ,自定義查詢筆記SpringSQL筆記
- OCP課程7:SQL之多表查詢SQL
- SQL單表查詢語句總結SQL
- 【MySQL】多表查詢MySql
- Django 多表查詢Django
- MySQL 多表查詢MySql
- 04多表查詢
- mysql多表查詢MySql
- 多表聯合查詢 - 基於註解SQLSQL
- Oracle總結【SQL細節、多表查詢、分組查詢、分頁】OracleSQL
- sql 連線查詢例項(left join)三表連線查詢SQL
- 一個MySQL多表查詢的問題MySql
- 深入sql多表差異化聯合查詢的問題詳解SQL
- 單表查詢
- SQL優化之多表關聯查詢-案例一SQL優化
- Oracle-多表查詢Oracle
- ORM多表查詢下ORM
- mysql新建表和多表查詢,關鍵字joinMySql
- MySQL單表查詢MySql
- MySQL 單表查詢MySql
- MySQL多表關聯查詢MySql
- MySQL 多表查詢分頁MySql
- JPA多表關聯查詢
- Hibernate hql 多表查詢
- thinkPHP多表聯合查詢PHP
- SQL Server-簡單查詢語句,疑惑篇(三)SQLServer
- jpa動態查詢與多表聯合查詢
- 【學習】SQL基礎-006-多表連線查詢SQL
- SQL Server 多表聯合查詢取最新一條資料SQLServer
- 【三】ODB - C++ 單表查詢(V1.02)C++
- SQL總結(三)其他查詢SQL