Mysql中的进阶增删查改操作(二)
作者:mmseoamin日期:2023-12-11

联合查询和合并查询

    • 一.联合查询
      • 1.内连接
      • 2.外链接
        • 2.1左外连接
        • 2.2右外连接
        • 3.自连接
        • 4.子查询
        • 5.合并查询

          一.联合查询

          步骤

          1.进行笛卡尔

          2.列出连接条件

          3.根据需求再列出其他条件

          4.针对列进行精简(可以使用聚合函数)

          我们先搭建一个多表查询的框架

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第1张

          这样一个多表查询就搭建出来了,下面我们根据某些查找条件来写出相应的表.

          1.内连接

          我们在写多表查询的时候要严格遵守4个步骤

          一. 查询许仙同学的成绩

          1.进行笛卡尔积

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第2张

          2.连接条件

          我们在表中可以发现 student_id和id可以作为连接条件

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第3张

          (3)根据需要补充其他条件

          查询许仙的成绩,我们就要把许仙的名字突出出来

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第4张

          (4)根据列进行精简

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第5张

          二.查询所有同学的总成绩,及同学的个人信息

          (1)进行笛卡尔积

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第6张

          (2)连接条件

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第7张

          (3)根据聚合函数来计算总成绩

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第8张

          三.查询所有同学的成绩,及同学的个人信息

          查询同学信息和单科成绩,必须要有课程名,所以就涉及到了三张表,student,course,score.

          (1)进行笛卡尔积

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第9张

          (2) 连接条件

          三张表,就需要两个连接条件来进行连接,我们可以发现,score表中,有student_id和course_id,我们就可以用score表作为中间媒介来进行连接

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第10张

          (3)进行精简.

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第11张

          2.外链接

          2.1左外连接

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第12张

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第13张

          2.2右外连接

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第14张

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第15张

          3.自连接

          自己和自己连接

          显示所有“计算机原理”成绩比“Java”成绩高的成绩信息

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第16张

          根据条件来进行筛选

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第17张

          选择课程序号

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第18张

          4.子查询

          多个简单的sql合并为一个复杂的sql

          查询与“不想毕业” 同学的同班同学:

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第19张

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第20张

          5.合并查询

          案例:查询id小于3,或者名字为“Java”的课程

          Mysql中的进阶增删查改操作(二),在这里插入图片描述,第21张