SQL之JOIN、视图与函数
JOIN的定义
多表查询的操作需要用到JOIN
- 示范1:查找学生分配到的班级
- 示范2:查找顾客的订单以及付款记录
- JOIN:把不同的表连起来,一起查询信息
- 怎么连?通过指定的条件。
读文档,理解不同类型的JOIN
- Left Join VS Right Join
- 困惑点:怎么区分左和右?怎么看哪个表在左、哪个表在右
- 主表和从表的概念:
- 主表:主要想查找的信息
- 从表:需要补充的信息
- Left Join:主表 LEFT JOIN 从表
- Right Join:从表 RIGHT JOIN 主表
- 左右其实是一样的
- Navicat示范:自动把RIGHT JOIN换成了LEFT JOIN
- 示范图
- 困惑点:图形和SQL怎么对起来?缺少对集合这个概念的理解
- 最需要理解的概念:
- LEFT JOIN和INNER JOIN的区别
- JOIN 和 逗号(,)的区别
- 讲解含义
示范1:校务数据质量检查
- 没有班的学生
- 没有学生的班
- 学到的知识:
- null表示的意思
- 数据质量检查
- 视图:把查询的结果保存起来,可以当一张表来用
示范2:进行班级人数统计
- 统计每个班分别有多少学生,年纪最大和最小的生日
- 学到的知识:
- Group By, COUNT,MIN,MAX函数的用法
- 在菜鸟教程里学习其他函数的用法,SUM,COUNT
示范3:进销存系统制作顾客催款单
- 找到未付款的订单,加上顾客的姓名和联系方式,按从早到晚的顺序排列
- 学到的知识:视图、JOIN
示范4:进销存系统数据质量检查
- 订单中写错了顾客ID、产品ID
- 付款中写错了订单ID、顾客ID
- 学到的知识:
- null表示的意思
- 数据质量检查
示范5:进行顾客付款数的统计
- 统计每个顾客的订单总数、已付款订单总数、未付款订单总数、已付款总额、未付款总额
- 学到的知识:
- Group By, AVG函数的用法
- 在菜鸟教程里学习其他函数的用法,SUM,COUNT
本课学习内容
数据表
数据表就是一行一列的数据,或行行列列这种格式就叫表(如excel表)。
数据库
一大堆表的组合就是数据库。对数据里表的操作叫做语言。MYSQL 是数据库产品的名字。
JOIN
JOIN就是把一张表与加一张表连起来,把表与表连接起来的那个东西叫KEY。
- LEFT JOIN:以左边的表为主表,把左边表里的数据全部显示出来。
- INNER JOIN:与 JOIN 是相同的。就是两个表互相重叠的那部分。
JOIN的文档:https://www.runoob.com/sql/sql-join.html
视图
视图可以当表使用,视图里的数据只能看,不能修改。修改保存数据要在表里操作。
视图的文档:https://www.runoob.com/sql/sql-view.html
SQL函数
函数就是对数据的计算。
常用的函数有:AVG(),COUNT(),SUM(),MAX(),MIN(),GROUP BY ,HAVING。
SQL函数的文档:
- 数数 COUNT: https://www.runoob.com/sql/sql-func-avg.html
- 总数 SUM:https://www.runoob.com/sql/sql-func-sum.html
- 平均数 AVERATE:https://www.runoob.com/sql/sql-func-avg.html
作业
点击下载本课作业需要用到的SQL文件:点击此处下载
在Navicat里面,打开你的数据库,运行第9课的SQL文件,来更新你的数据库数据和视图。
使用Student表、Course表与SC表做JOIN,找出错误的数据。
计算学生的课程总数、总成绩和平均成绩,并且把你的SQL语句保存为视图。
计算每个学生的最高分和最低分。
计算每个课程有多少个学生,平均分是多少。
计算每个课程学生成绩的最高分和最低分。