小白成长之路-Mysql数据库基础(二)
文章目录
- 前言
- 一、基础命令-单表查询
- 1.全表查询
- 2.去重查询
- 3.统计查询,非空数据
- 4.别名定义
- 5.聚合函数查询
- 5.1 sum()
- 5.2 avg()
- 5.3 max()
- 5.4 min()
- 6.分组查询group by
- 7.分组后的条件:having
- 8.排序查询
- 9.分页查询
- 10.模糊查询
- 二、基础命令-多表查询
- 1.子查询
- 2.内连接
- 3.联合查询union
- 4.外连接查询
- 4.1左外连接查询
- 4.2右外连接查询
- 三、综合练习
- 总结
前言
提示:本篇会涉及到mysql基础的各种查询
例如:分组查询,聚合查询,多表查询,左连接,右连接,内连接,子查询
一、基础命令-单表查询
1.全表查询
2.去重查询
3.统计查询,非空数据
4.别名定义
5.聚合函数查询
5.1 sum()
求和函数
5.2 avg()
取平均数
5.3 max()
最大值
5.4 min()
最小值
6.分组查询group by
查询每个专业有多少名学生
select m.major_name,count(s.student_id) as student_count from student s join major m on s.major_id=m.major_id group by m.major_name;
7.分组后的条件:having
查询专业分大于160
8.排序查询
默认是正序排序
倒序排序
9.分页查询
只显示第一条数据
指定偏移量 limit 1,2
说明:从第2条开始显示2条数据,就是显示2-3行的数据
10.模糊查询
1.查询名字包含六的学生信息
‘%str%’
2.查询以老开头的学生
‘老%’
3.查询以6结尾的学生姓名
‘6%’
二、基础命令-多表查询
1.子查询
查询选修了"数据结构"课程的学生信息
2.内连接
查询学生张三的数据结构课程的老师
select s.name,c.course_name,t.name from student s join course c on s.major_id = c.major_id join teacher t on t.teacher_id=c.teacher_id where s.name='张三’and c.course_name=‘数据结构’;
3.联合查询union
4.外连接查询
4.1左外连接查询
left join on
基本概念
左表为主:保留左表(student)的所有记录
右表匹配:只显示右表(major)中匹配的记录
无匹配显示NULL:当右表无匹配时,右表字段显示为NULL
4.2右外连接查询
right join on
基本概念
右表为主:保留右表(major)的所有记录
左表匹配:只显示左表(student)中匹配的记录
无匹配显示NULL:当左表无匹配时,左表字段显示为NULL
三、综合练习
1.查询每个院系的教师人数
select d.dept_name as ‘学院名称’,count(t.teacher_id) as ‘教师人数’ from teacher t join department d on t.dept_id=d.dept_id group by d.dept_name;
2.查询学生及其所属专业信息
select s.name as ‘学生姓名’,m.major_name as ‘所属专业’ from student s join major m on s.major_id=m.major_id;
还可以再查的深点,查到专业所属的学院
select s.name as ‘学生姓名’,m.major_name as ‘所属专业’,d.dept_name as '所属学院’from student s join major m on s.major_id=m.major_id join department d on d.dept_id=m.dept_id;
3.查询每门课程及其授课教师
select c.course_name as ‘课程名称’,t.name as ‘教师名称’ from course c join teacher t on c.teacher_id=t.teacher_id;
4.查询每个专业的平均学分信息
select c.course_name as ‘课程名称’,avg(sc.score) as ‘平均分’ from course c join student_course sc on c.course_id=sc.course_id group by c.course_name;
总结
以上就是mysql单表查询和多表查询的实例,希望能帮助到其他小伙伴哦