联表查询之交叉连接、内、外连接

目录

1、交叉连接(笛卡尔积)

2、内连接

2.1 显示内连接(inner join)

2.2 隐示内连接

 2.3 内连接的练习

 2.3.1 查询第一或者二学期中所有的学生

2.3.2 查询第一和第二期所有的学生

 2.3.3 查询每个班级下的学生总数,并且按照学生总数升序在(降序)排列

 2.3.4 查询班级总人数>2的班级,并且人数降序排列

 3、外连接

3.1 左外连接(left outer join,outer可以省略)

3.1.1 左外连接练习

3.1.2 所需表(学生表和班级表)

​编辑

3.1.3 查询结果与内连接对比 

​编辑

3.2 右外连接

​编辑 3.2.1 右外连接练习

​编辑 3.2.2 所需数据

​编辑

3.2.3 查询结果

3.2.4 如果删掉外键之后再插入一条数据(第八条)然后右连接的查询结果?

3.3 全外连接(union)

3.3.1 运行结果


1、交叉连接(笛卡尔积)


联表查询之交叉连接、内、外连接_第1张图片

三条查询语句 :前两条是单表查询,然后就是交叉查询

 联表查询之交叉连接、内、外连接_第2张图片 

联表查询之交叉连接、内、外连接_第3张图片

 注:第一个是单表,后面是交叉表(显得有点冗余)

2、内连接


2.1 显示内连接(inner join)


联表查询之交叉连接、内、外连接_第4张图片

 注:,如图所示这个INNER是可以不用写的,查询结果也是也一样的

2.2 隐示内连接


联表查询之交叉连接、内、外连接_第5张图片

 2.3 内连接的练习


 2.3.1 查询第一或者二学期中所有的学生


联表查询之交叉连接、内、外连接_第6张图片

 注:虽然输入中文也可以查询,但不推荐,因为这个名称有可能会发生变化  

2.3.2 查询第一和第二期所有的学生


注:这个是错误的查询写法,先and,在or,那么就会这样联表查询之交叉连接、内、外连接_第7张图片

 而显得数据冗余了 

========================================================================= 

联表查询之交叉连接、内、外连接_第8张图片

注:加个括号一起统计,就不会先查and,在查or了 。(第一个是隐示,第二个是显示)

 2.3.3 查询每个班级下的学生总数,并且按照学生总数升序在(降序)排列


联表查询之交叉连接、内、外连接_第9张图片

联表查询之交叉连接、内、外连接_第10张图片

注:这是点击美化sql之后的格式

 2.3.4 查询班级总人数>2的班级,并且人数降序排列


联表查询之交叉连接、内、外连接_第11张图片

注:先分组(group),在筛选(having) 

 3、外连接


3.1 左外连接(left outer join,outer可以省略)


3.1.1 左外连接练习


3.1.2 所需表(学生表和班级表)


联表查询之交叉连接、内、外连接_第12张图片

联表查询之交叉连接、内、外连接_第13张图片 

3.1.3 查询结果与内连接对比 


1. 

联表查询之交叉连接、内、外连接_第14张图片

联表查询之交叉连接、内、外连接_第15张图片 

2.

 

联表查询之交叉连接、内、外连接_第16张图片 

3.

联表查询之交叉连接、内、外连接_第17张图片

 

注:查询结果1是左外连接,2是内连接 ,3.以左表为主的话,应该有四个学期,但是学生表只有第一和第二,所有返回kong

3.2 右外连接


 3.2.1 右外连接练习


 3.2.2 所需数据


联表查询之交叉连接、内、外连接_第18张图片

注:需要多家一条数据并且class_id为空(第七条)

3.2.3 查询结果


联表查询之交叉连接、内、外连接_第19张图片 

注:为null,是因为没有找到对于的id,如果想查没有班级的学生,就在后面加个

and class-id = null即可

 

 

3.2.4 如果删掉外键之后再插入一条数据(第八条)然后右连接的查询结果?


 联表查询之交叉连接、内、外连接_第20张图片

 联表查询之交叉连接、内、外连接_第21张图片

 联表查询之交叉连接、内、外连接_第22张图片

注:查询结果以右边为主,所有可以看到class_id,但是坐标的内容为null,那么如果再次使用内连接,还是一样没有匹配就不显示

联表查询之交叉连接、内、外连接_第23张图片 

 

3.3 全外连接(union)


 

联表查询之交叉连接、内、外连接_第24张图片

 

 注:mysql是无法实现全外连接,但是可以通过union进行 

3.3.1 运行结果


联表查询之交叉连接、内、外连接_第25张图片

 联表查询之交叉连接、内、外连接_第26张图片

 

你可能感兴趣的:(数据库,mysql)