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函数的文档:

作业

  1. 点击下载本课作业需要用到的SQL文件:点击此处下载

  2. 在Navicat里面,打开你的数据库,运行第9课的SQL文件,来更新你的数据库数据和视图。

  3. 使用Student表、Course表与SC表做JOIN,找出错误的数据。

  4. 计算学生的课程总数、总成绩和平均成绩,并且把你的SQL语句保存为视图。

  5. 计算每个学生的最高分和最低分。

  6. 计算每个课程有多少个学生,平均分是多少。

  7. 计算每个课程学生成绩的最高分和最低分。