--mysql查询练习
首先准备表,
1、学生表student
2、课程表course
3、成绩表score
4、教师表teacher
在新的数据库selectest中创建四个表
添加数据完成后开始查询练习。
-- 1.查询student表中所有的记录
查询某个表中的所有记录
-- 2.查询student表中所有记录的s_name,s_sex和s_class列
查询某张表的部分记录
-- 3.查询教师所有的单位但是不重复的t_depart列
==distinct 排重==
先普通查询teacher表中的单位信息 使用关键词distint排除重复的关键词
-- 4.查询score表中成绩在60-80之间所有的记录(sc_degree)
==查询区间==
between ... and ...(between是包括边界点的)
查询某张表某个区间的值
或者
---直接使用运算符比较
-- 5.查询score表中成绩为85, 86, 或者88的记录(sc_degree)
---表示 或者关系的查询 in
同一类字段或的查询用in
-- 6.查询student表中'95031'班或者性别为'女'的同学记录
---or 表示或者
同一张表中不同字段用or
-- 7.以class降序查询student表中所有的记录
---升序asc、降序desc
按字段降序查询
-- 8.以c_no升序.sc_degree降序查询score表中所有的数据
以一个字段升序,另一个字段降序
-- 9.查询'95031'班的学生人数
---统计 count
统计某个字段某个值的数目
-- 10.查询score表中的最高分数的学生号和课程号.(子查询或者排序)
多限制条件的查询
----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
第一个数字表示从多少开始,第二个数字表示传多少条。
limit 从0位置开始,传1项
-- 11.查询每门课的平均成绩
--avg()
查询某门课的平均成绩
---如何在一个sql语句中进行查询?
---group by分组
利用groupby查询每门课程的平均成绩
-- 12,查询score表中至少有2名学生选修的,并且以3开头的课程的平均分
having和模糊查询
--对一个复杂的查询,分段的思路进行操作
分段查询
---因为已经分好组了,所以可以用select(*);
---having是过滤的意思。
---模糊查询用的是like
-- 13.查询分数大于70但是小于90的s_no列:
查询某一区间的分数
-- 14.查询所有的学生 s_name , c_no, sc_degree列
多表查询例子
-- 15.查询所有学生的s_no, c_name, sc_degree列
多表查询例子
-- 16.查询所有的学生 s_name , c_name, sc_degree列
多表查询例子
-- 17.查询班级是'95031'班学生每门课的平均分
多表查询例子
-- 18.查询选修"3-105"课程的成绩高于'109'号同学'3-105'成绩 的所有同学的记录
多表查询例子
-- 19.查询成绩高于学号为'109',课程号为'3-105'的成绩的所有记录
-- 20.查询所有学号为108、101的同学同年出生的所有学生的s_no,s_name和s_birthday
year(s_birthday)
-- 21.查询 张旭 教师任课的学生的成绩
多层子查询
-- 22.查询选修课程的同学人数多余 2 人的教师姓名
---having 是在分组情况下的条件触发词。
---where用于筛选表内全部记录,having用于筛选分组后的记录。
-- 23.查询95033班和95031班全体学生的记录
in 的使用
-- 24.查询存在85分以上成绩的课程c_no
-- 25.查出所有'计算机系' 教师所教课程的成绩表
不知道为什么不运行出结果,等待解决
-- 26.查询'计算机系'与'电子工程系' 不同职称的教师的t_name和t_prof
----union 求并集
-- 27, 查询选修编号为"3-105"课程且成绩至少高于选修编号为'3-245'同学的c_no,s_no和sc_degree,并且按照sc_degree从高到地次序排序
---至少?any
-- 28.查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学c_no.s_no和sc_degree
---且?all
all
-- 29. 查询所有教师和同学的 name ,sex, birthday
---合并两个表 union
---别名 as
合并表+取别名
-- 30.查询所有'女'教师和'女'学生的name,sex,birthday
网友评论