![fb8ece6ad9269d8e59e85f029a4177aa.png](https://i-blog.csdnimg.cn/blog_migrate/7f1e965313fccaa1860653c7cd375dbc.jpeg)
用SQL解决业务问题的思路:
step1:翻译成大白话
step2:写出分析思路
step1:写出对应的SQL语句
题目的表来自创建的4个表:学生表、成绩表、课程表、教师表
![ea0d1231f70ab6ce45d43f93e7d2c972.png](https://i-blog.csdnimg.cn/blog_migrate/8e8734898cc3083a536fafe25939f093.jpeg)
一、面试题型——简单查询
基本语句格式:
select 查询结果
from 从哪张表中查找数据
where查询条件;
1.查询姓“猴”的学生名单
![1d03b30191bf525ea92e0e5fc9c674c8.png](https://i-blog.csdnimg.cn/blog_migrate/747f3eb7108074009ba9d44ac21ffdde.png)
2.查询姓名中最后一个字是“猴”的学生名单
![c04c09aea69a66761be17b10406a6dab.png](https://i-blog.csdnimg.cn/blog_migrate/73b7037cb895f219e0f8e8ea48066590.png)
3.查询姓名中带“猴”的学生名单
![88e5c3e3ea943bc3daaaaf72144b6c81.png](https://i-blog.csdnimg.cn/blog_migrate/333dcc4daf5e613e1702517460887d78.png)
4.查询姓“孟”老师的个数
![07bf24ce86b713fb67db4bfa6b565899.png](https://i-blog.csdnimg.cn/blog_migrate/9d4185ec220455ce4a1032d0898f1246.png)
二、面试题型——汇总分析
基本语句格式:
select 查询结果
from 从哪张表中查找数据
where查询条件
group by 分组
having 对分组结果指定条件
order by 对查询结果排序;
1.查询课程号为“0002”的总成绩
![94a5debfbe20627a344a74b63011c211.png](https://i-blog.csdnimg.cn/blog_migrate/396e9f6e6992d8b3825adaa06d7cda14.png)
2.查询选了课程的学生人数
![7c2cccaad35a7ede4be128e7a24b3bf4.png](https://i-blog.csdnimg.cn/blog_migrate/c8d74597896ee1124f6cf713c58c3956.png)
分组
3.查询各科成绩最高和最低的分
![220115db894c23af985cbf8739473674.png](https://i-blog.csdnimg.cn/blog_migrate/dba1e9aaa913ba95c95ee7272a5657de.png)
4.查询每门课程被选修的学生数
![930e54ff9495fe6211eb6adb5588e83e.png](https://i-blog.csdnimg.cn/blog_migrate/b220f81af8db5304ae52a36c23c2e205.png)
5.查询男生、女生人数
![f254b5d2c4876e4eea6dfc2cd192afca.png](https://i-blog.csdnimg.cn/blog_migrate/8ab04599c3b977fd05bb6ffc2cd481dd.png)
分组结果的条件
6.查询平均成绩大于60分学生的学号和平均成绩
![280b2e6b6b791be6fb7834490df57f11.png](https://i-blog.csdnimg.cn/blog_migrate/e96651e2e51035e812d8707133c0a2d9.png)
7.查询至少选修两门课程的学生学号
![001e501aa9caa2d6761679b09416328d.png](https://i-blog.csdnimg.cn/blog_migrate/c00fba7abc60770dfe69bac7847df956.png)
8.查询同名同姓学生名单并统计同名人数
![c0fe52d3f84dea95912f8abf65b4f52d.png](https://i-blog.csdnimg.cn/blog_migrate/f9bd49c39c7d9c5392f2e16a41f59e64.png)
排序
9. 查询不及格的课程并按课程号从大到小排列
![c7fed0ef15e003918320f6848da9c414.png](https://i-blog.csdnimg.cn/blog_migrate/f6d637742b1bbc499541365c5533000e.png)
10.查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列
![4f4c18df0a836c2efc782bdcc379e909.png](https://i-blog.csdnimg.cn/blog_migrate/1668e71ab9455a61f4a9069b95161fbf.png)
11.检索课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列
![e33b7cf1653b647e0a9bd2dbd26d0ff8.png](https://i-blog.csdnimg.cn/blog_migrate/198c2bcd8123deab8d002606cea1f1cb.png)
12.统计每门课程的学生选修人数(超过2人的课程才统计)
要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序
![cd1f176aded0496f9041551babb2dd5d.png](https://i-blog.csdnimg.cn/blog_migrate/4b04d6ff08d4b28a33abd8ee8c02ca97.png)
13.查询两门以上不及格课程的同学的学号及其平均成绩
![05df89cff2ecc6dbeeff22db034cd9c2.png](https://i-blog.csdnimg.cn/blog_migrate/a9145fb5b27b0683aa572ad57cbf9c54.png)
三、面试题型——复杂查询
基本语句格式:
select 查询结果
from 从哪张表中查找数据
where查询条件(写入子查询)
group by 分组
having 对分组结果指定条件
order by 对查询结果排序
limit 从查询结果中取出指定行;
1.查询所有课程成绩小于60分学生的学号、姓名
![483ddee1140ef7f8af0e09f90986d669.png](https://i-blog.csdnimg.cn/blog_migrate/5be3c3b20a140d849f4e7abd5b4455d0.png)
2.查询没有学全所有课的学生的学号、姓名
![8040bae77ce88cf49ea17f0dc4d1d3d4.png](https://i-blog.csdnimg.cn/blog_migrate/19682333e591b4b608ef047843f61a7c.png)
3.查询出只选修了两门课程的全部学生的学号和姓名
![45e006fc7b4c88c7f2c8a2392e41a649.png](https://i-blog.csdnimg.cn/blog_migrate/58610160ebbd3f3a75c39862a0c8e805.png)
4.1990年出生的学生名单
![5205ee64c217fd2ff5d0363cf3f261e1.png](https://i-blog.csdnimg.cn/blog_migrate/60b4167be3f994ebb9f97555d278633e.png)
分组取每组最大值、最小值,每组最大的N条记录
5.按课程号分组取成绩最大值所在行的数据
![d47d9ad17e3b0f473c4df7c875b5757d.png](https://i-blog.csdnimg.cn/blog_migrate/33bc3d329f53c194092f58b741d4645c.png)
6.按课程号分组取成绩最小值所在行的数据
![074f94827e058671ead9249932844832.png](https://i-blog.csdnimg.cn/blog_migrate/e147f926c0d218b9dcaac3df209c788d.png)
7.查询各科成绩前两名的记录
![ec06cad1675dd4aaa7dad30617bbdc8d.png](https://i-blog.csdnimg.cn/blog_migrate/36700da3707a681700a9168a8598b759.png)
四、面试题型——多表查询
根据表的联结关系运用不同语句,常用内联结、左联结、右联结,case表达式
1.查询所有学生的学号、姓名、选课数、总成绩
![ac0f0f556245fb85ec7aaeaee7e5c3e1.png](https://i-blog.csdnimg.cn/blog_migrate/cfa1b6d3419d3d26de907039dc1d7693.png)
2.查询平均成绩大于85的所有学生的学号、姓名和平均成绩
![6dc49bb6910e6294c325d69a1772c158.png](https://i-blog.csdnimg.cn/blog_migrate/7cd2efc0ef45884aaac3eb81e4cdb192.png)
3.查询学生的选课情况:学号,姓名,课程号,课程名称
![2fefffb7907ddfe9dedd6ad17a3cfdf8.png](https://i-blog.csdnimg.cn/blog_migrate/eab576e9e8d11778a8d30424b858930b.jpeg)
4.查询出每门课程的及格人数和不及格人数
![60ad8aa08b062be231f8cc4fabfda74d.png](https://i-blog.csdnimg.cn/blog_migrate/f6c534b121afb18a73df83cc0f1d937c.png)
5.使用分段[100-85],[85-70],[70-60],[‹60]来统计各科成绩,分别统计:各分数段人数,课程号和课程名称
![8cca8280e524ad7525e5b7da09463811.png](https://i-blog.csdnimg.cn/blog_migrate/e2ab95dd6156e59817e3989f6086a6bb.png)
6.查询课程编号为0003且课程成绩在80分以上的学生的学号和姓名
![936aced2f737e4898b1fedf5ef5ae859.png](https://i-blog.csdnimg.cn/blog_migrate/1e9b1b16861d20858adad5452c8a963b.jpeg)
7.下面是学生的成绩表(表名score,列名:学号、课程号、成绩)
![8cc5acb090494f1af8db5bda9e766d86.png](https://i-blog.csdnimg.cn/blog_migrate/1a03b1ce3e8086eb8a73b9d7dce07edc.jpeg)
使用sql实现将该表行转列为下面的表结构
![1ca79bade3aa59ec6cd2888e427ee532.png](https://i-blog.csdnimg.cn/blog_migrate/8342730c64b068a2a6e624c8cf12c0f7.jpeg)
![8ba439f1e81b27b8e4c0f7223e6201ce.png](https://i-blog.csdnimg.cn/blog_migrate/952c75896b5c3fb8f2fc4f07f1e1409d.png)