Mysql中的进阶增删查改操作(二)

联合查询和合并查询

    • 一.联合查询
      • 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张图片

你可能感兴趣的:(mysql,android,服务器)