MySQL的内连接和外连接

内连接

在之前的MySQL的复合查询时,我们能够通过给两个表做笛卡尔积查询和where子句限定条件来查询想查询的数据,不过MySQL还提供了内连接用来给两个表做笛卡尔积,对比之前的复合查询笛卡尔积来说语法更加简洁。

语法:select 字段 from 表1 inner join 表2 on 条件1 and 条件2;

实际上这个语句和之前的复合查询没什么不同,只是语法形式不同。

比如我要查询所有学生的学号,姓名以及班级名称,我们可以直接通过复合查询和where子句限定条件来查询。

 也可以直接选择内连接进行查询。

而内连接这个语法的作用就是将连接和where子句的条件给分开了,算是给用户一种新的查询方法。 

外连接

外连接分为左外连接和右外连接。

左外连接

语法:select 字段 from 表1 left join 表2 on 条件1 and 条件2;

左外连接指的是 left join 关键字左侧的表完全显示,即使右侧表的数据中没有左侧的表的数据。

比如这里创建两个表,stu 和 exam,stu中有两位学生在exam表中不存在,exam表中有一个学生在stu中不存在。

 如果我们用内连接或者普通的复合查询来查询的话,有的数据是直接不显示的。

比如这里我们要查询参加了考试的学生的信息,然后使用内连接来查询。

发现有两个学生没有查询到 。使用复合查询也是一样的。

这就需要左外连接来查询了。

我们发现即使3号和4号学生没有参加考试,但是在左外连接,它们依旧查询到了。

 右外连接

其实学习完左外连接就已经学完右外连接了,只需要把left改成right即可

语法:select 字段 from 表1 right join 表2 on 条件1 and 条件2;

总结

以上就是MySQL的三种连接方式,十分简单,相信大家很快就能掌握。 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 16:18:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 16:18:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 16:18:06       82 阅读
  4. Python语言-面向对象

    2024-04-12 16:18:06       91 阅读

热门阅读

  1. 【蓝桥杯日常】

    2024-04-12 16:18:06       35 阅读
  2. Composer安装与配置详解

    2024-04-12 16:18:06       34 阅读
  3. 蓝桥杯省B组复习(小白篇)

    2024-04-12 16:18:06       39 阅读
  4. C++ 的内存安全与效率

    2024-04-12 16:18:06       40 阅读
  5. 力扣经典150题第十八题:整数转罗马数字

    2024-04-12 16:18:06       44 阅读
  6. 《访问者模式(极简c++)》

    2024-04-12 16:18:06       40 阅读
  7. Erlang 常用数据结构实现

    2024-04-12 16:18:06       45 阅读
  8. OTN和波分的区别

    2024-04-12 16:18:06       38 阅读
  9. vue简单使用五(组件的使用)

    2024-04-12 16:18:06       33 阅读
  10. 安卓手机APP开发的实践_点击行为

    2024-04-12 16:18:06       38 阅读
  11. Android - VideoView需要按两次BACK才能退出解决方法

    2024-04-12 16:18:06       41 阅读
  12. Android MediaPlayer 深入分析与实践

    2024-04-12 16:18:06       34 阅读