【2020-06-13】mysql学习笔记(二)
--mysql查询练习
首先准备表,
1、学生表student
2、课程表course
3、成绩表score
4、教师表teacher
![](https://img.haomeiwen.com/i21398523/036e7de1b2ad35b0.png)
添加数据完成后开始查询练习。
-- 1.查询student表中所有的记录
![](https://img.haomeiwen.com/i21398523/c302ee11dfd8ed91.png)
-- 2.查询student表中所有记录的s_name,s_sex和s_class列
![](https://img.haomeiwen.com/i21398523/b99f8d60c204d3c1.png)
-- 3.查询教师所有的单位但是不重复的t_depart列
==distinct 排重==
![](https://img.haomeiwen.com/i21398523/a3617552b6ab2dfd.png)
![](https://img.haomeiwen.com/i21398523/b60f1a65495da1fb.png)
-- 4.查询score表中成绩在60-80之间所有的记录(sc_degree)
==查询区间==
between ... and ...(between是包括边界点的)
![](https://img.haomeiwen.com/i21398523/f43c6ed9a0e191a5.png)
或者
---直接使用运算符比较
![](https://img.haomeiwen.com/i21398523/f20c6a33f97cd771.png)
-- 5.查询score表中成绩为85, 86, 或者88的记录(sc_degree)
---表示 或者关系的查询 in
![](https://img.haomeiwen.com/i21398523/c3e99f881a246347.png)
-- 6.查询student表中'95031'班或者性别为'女'的同学记录
---or 表示或者
![](https://img.haomeiwen.com/i21398523/941933e6b2d19208.png)
-- 7.以class降序查询student表中所有的记录
---升序asc、降序desc
![](https://img.haomeiwen.com/i21398523/a737e82a445930a0.png)
-- 8.以c_no升序.sc_degree降序查询score表中所有的数据
![](https://img.haomeiwen.com/i21398523/869b5bb7233a050e.png)
-- 9.查询'95031'班的学生人数
---统计 count
![](https://img.haomeiwen.com/i21398523/24a9be3d843af4a0.png)
-- 10.查询score表中的最高分数的学生号和课程号.(子查询或者排序)
![](https://img.haomeiwen.com/i21398523/9206a7baa7d6b809.png)
----1、找到最高分
select max(sc_degree) from score;
2、找最高分的s_no和c_no
select s_no,c_no from score where sc_degree=(select max(sc_degree) from score);
---排序的做法
select s_no,c_no,degree from score order by degree;
--- limit
第一个数字表示从多少开始,第二个数字表示传多少条。
![](https://img.haomeiwen.com/i21398523/36071d3951bdf19c.png)
-- 11.查询每门课的平均成绩
--avg()
![](https://img.haomeiwen.com/i21398523/5391cb1e78c451ef.png)
---如何在一个sql语句中进行查询?
---group by分组
![](https://img.haomeiwen.com/i21398523/a965f1e679b0cb4c.png)
-- 12,查询score表中至少有2名学生选修的,并且以3开头的课程的平均分
![](https://img.haomeiwen.com/i21398523/1b39a71fde746014.png)
--对一个复杂的查询,分段的思路进行操作
![](https://img.haomeiwen.com/i21398523/8316a3dfdf8fdd09.png)
---因为已经分好组了,所以可以用select(*);
---having是过滤的意思。
---模糊查询用的是like
-- 13.查询分数大于70但是小于90的s_no列:
![](https://img.haomeiwen.com/i21398523/15277abc615b206b.png)
-- 14.查询所有的学生 s_name , c_no, sc_degree列
![](https://img.haomeiwen.com/i21398523/cb84ebd14f0c90e4.png)
-- 15.查询所有学生的s_no, c_name, sc_degree列
![](https://img.haomeiwen.com/i21398523/798fa567be630b98.png)
-- 16.查询所有的学生 s_name , c_name, sc_degree列
![](https://img.haomeiwen.com/i21398523/51db3f660b764ddb.png)
-- 17.查询班级是'95031'班学生每门课的平均分
![](https://img.haomeiwen.com/i21398523/1ddafefdaa81e3cd.png)
-- 18.查询选修"3-105"课程的成绩高于'109'号同学'3-105'成绩 的所有同学的记录
![](https://img.haomeiwen.com/i21398523/14a0636b8f508daa.png)
-- 19.查询成绩高于学号为'109',课程号为'3-105'的成绩的所有记录
![](https://img.haomeiwen.com/i21398523/3fe8d15df09c8ec5.png)
-- 20.查询所有学号为108、101的同学同年出生的所有学生的s_no,s_name和s_birthday
![](https://img.haomeiwen.com/i21398523/ad0b6c2c3bcce9bf.png)
-- 21.查询 张旭 教师任课的学生的成绩
![](https://img.haomeiwen.com/i21398523/cc812fd64d5a2076.png)
-- 22.查询选修课程的同学人数多余 2 人的教师姓名
---having 是在分组情况下的条件触发词。
---where用于筛选表内全部记录,having用于筛选分组后的记录。
![](https://img.haomeiwen.com/i21398523/51132ea392a47648.png)
-- 23.查询95033班和95031班全体学生的记录
![](https://img.haomeiwen.com/i21398523/8238ac054bc92583.png)
-- 24.查询存在85分以上成绩的课程c_no
![](https://img.haomeiwen.com/i21398523/8111190265b127aa.png)
-- 25.查出所有'计算机系' 教师所教课程的成绩表
![](https://img.haomeiwen.com/i21398523/d6c85e91b2a1c9fa.png)
-- 26.查询'计算机系'与'电子工程系' 不同职称的教师的t_name和t_prof
----union 求并集
![](https://img.haomeiwen.com/i21398523/8a31d1315063fcae.png)
-- 27, 查询选修编号为"3-105"课程且成绩至少高于选修编号为'3-245'同学的c_no,s_no和sc_degree,并且按照sc_degree从高到地次序排序
---至少?any
![](https://img.haomeiwen.com/i21398523/9a70cdf4d980772d.png)
-- 28.查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学c_no.s_no和sc_degree
---且?all
![](https://img.haomeiwen.com/i21398523/8209cf145d94b238.png)
-- 29. 查询所有教师和同学的 name ,sex, birthday
---合并两个表 union
---别名 as
![](https://img.haomeiwen.com/i21398523/cb8e7641abbaf126.png)
-- 30.查询所有'女'教师和'女'学生的name,sex,birthday
![](https://img.haomeiwen.com/i21398523/68a0d9822141bdb8.png)