一、简单查询

  1. 查询姓“猴”的学生名单

451d6d88656fe8e8ca306d44c7e4fece.png

2. 查询姓名中最后一个字是“猴”的学生名单

20bb505cb7bbad4a95ea0c0420888e5e.png

3. 查询姓名中带“猴”的学生名单

c810900a0ed15e68800b8f3d39cee6d3.png

4. 查询姓“孟”老师的个数

319823514ecfefd8f5230872978312a6.png

二、汇总分析

1.查询课程表编号为“002”的总成绩

cea5d32fa60dabd0371c9421faad493f.png

2. 查询选了课程的学生人数

a2078f7ab2c4e2ced631cd63511ce741.png

3. 查询各科成绩最高和最低分数

7dd04a4dc9603b9288e6a66f7aed87aa.png

4. 查询每门课程被选修的学生数

3fb4db17678b6d03fc9f66255c4a2061.png

5. 查询男生、女生人数

3fb4db17678b6d03fc9f66255c4a2061.png

6. 查询平均成绩大于60分学生的学号和平均成绩

2c71733250d0ca168c8752da4d2ece23.png

7. 查询至少选修两门课程的学生学号

e6f96372489fb16641924b1972b0d1fc.png

8. 查询同名同姓学生名单并统计同名人数

9a21bebc831ab98b8256c4597a8ba5d9.png

9. 查询不及格的课程并按课程号从大到小排列

469059cf03f502521027d4136383ab47.png

10. 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列

cfc3a5f65f90386f9479b6e5eb88831d.png

11. 检索课程编号为“0004”且分数小于60的学生学号,结果按分数降序排列

22f184511e66a8924286abd413983cbb.png

12. 统计每门课程的学生选修人数(超过2人的课程才统计)

要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序

50e6b5acac4f18d220bc8e79281f4fc2.png

13. 查询两门以上不及格课程的同学的学号,以及不及格课程的平均成绩

f49a3fcaf208f911043c0effe9779e7b.png

三、复杂查询

1.查询所有课程成绩小于80分学生的学号、姓名

4245a78d2f906875572f5e66dbbb2551.png

2. 查询没有学全所有课程的学生的学号,姓名

b3cbbd96bdda626628393830b19843a5.png

3.查询只选修了两门课程的全部学生的学号和姓名

d37b8ebb6b04b65ac03288cf4018ed42.png

4. 1990年出生的学生名单:

7a253a05c42513f4b4556f143550b9e2.png

5. 按课程号分组取成绩最大值所在行的数据

cd798fb3cb6d711c874e8b8c8ba55bb9.png

6. 按课程号分组取成绩最小值所在行的数据

833ed851d6385b8807f7195b991aa1a1.png

7.查询各科成绩前两名的记录

7912e7f9818cf7069612716d9decbf51.png

四、多表查询

  1. 查询所有学生的学号、姓名、选课数、总成绩

503e8a96b78df16c7a7fcc0ae1efb59f.png

2. 查询平均成绩大于85的所有学生的学号、姓名和平均成绩

d1d781a502998d9af1aa2bc80e909179.png

3. 查询学生的选课情况:学号,姓名,课程号,课程名称

db160a0d6291e1c8a2b7b7a4e1e583d9.png

4. 查询每门课程的及格人数和不及格人数

c4baa7ea72c12378818a12bbfbfb6b04.png

5. 使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计:各分段人数,课程号和课程名称

893d99a235e1c7ccae7713811c7afaad.png

6. 查询课程编号为0003且课程成绩在80分以上的学生的学号和姓名

29b78c1841ff1e76de7fbc0ea1b43c15.png

7. 行列转换

c6389f7f3f3842a28c03945ab208d5a2.png

五、如何提高SQL查询效率

  1. select 子句中尽量避免使用*
  2. where 子句比较符号左侧避免函数

【例】where 成绩+5>90 变为: where 成绩>90-5

3.尽量避免使用 in 和not in

【例】where 学号 in (8,9) 变为:where 学号 between 8 and 9

4. 尽量避免使用or,优化为union

【例】

select 学号
from 成绩表
where 成绩=88 or 成绩 = 89;

优化后:

select 学号
from 成绩表
where 成绩=88
union 
select 学号 from 成绩表 where 成绩= 89;

5. 使用limit子句限制返回的数据行数

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐