mysql数据库的内外连接

 更新时间:2023年07月20日 10:13:23   作者:学习同学  
这篇文章主要介绍了mysql数据库的内外连接,内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询,需要的朋友可以参考下

mysql内外连接

表的内外连接是mysql中比较常用的内容 也是我们学习mysql的重点

但是其实它的内容和语法都是很少很简单的

内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连 接,也是在开发过程中使用的最多的连接查询

语法

select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

不过其实这里我并不推荐大家使用内连接 因为使用内连接的场景都可以使用笛卡尔积来替代

比如说下面的几道例题

显示SMITH的名字和部门名称

这是使用笛卡尔积做出的结果

在这里插入图片描述

这是使用内连接做出的结果

在这里插入图片描述

外连接 左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接。

左外连接的语法格式是这样子的

select 字段名 from 表名1 left join 表名2 on 连接条件

下面是案例

查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来

-- 建两张表
create table stu (id int, name varchar(30)); -- 学生表
insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');
create table exam (id int, grade int); -- 成绩表
insert into exam values(1, 56),(2,76),(11, 8);

在我们前面使用笛卡尔积做的时候会删除掉一些“无效数据” 但是有时候我们不想要这些数据被删除 此时我们就可以使用左外连接来处理

使用左外连接之后 我们可以查找一些所谓的‘无效数据’

在这里插入图片描述

这里我们就可以发现 exam的id为null依旧显示出来了

右外连接

右外连接和左外连接之间只差了一个关键字

语法:

select 字段名 from 表名1 right join 表名2 on 连接条件

我们还是使用上面的题目 稍微改变下语法即可

在这里插入图片描述

总结

在这里插入图片描述

到此这篇关于mysql数据库的内外连接的文章就介绍到这了,更多相关mysql内外连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • php 读取mysql数据库三种方法

    php 读取mysql数据库三种方法

    mysql 读取数据库三种方法,需要的朋友可以参考下。
    2009-11-11
  • 阿里云下配置MySQL远程连接的步骤详解

    阿里云下配置MySQL远程连接的步骤详解

    大家都知道阿里云默认是不能用客户端远程连接的,但最近因为工作的需要,不得不实现远程连接,下面这篇文章主要给大家介绍了在阿里云下配置MySQL远程连接的步骤,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • MySQL的索引详解

    MySQL的索引详解

    这篇文章主要介绍了MySQL的索引的一些资料,对于mysql的优化来说索引是不得不说的,这里就为大家介绍一下,需要的朋友可以参考一下
    2018-01-01
  • mysql 5.7.15版本安装配置方法图文教程

    mysql 5.7.15版本安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.15安装配置方法图文教程,更改数据库data的存储路径,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • MySQL关键字Distinct的详细介绍

    MySQL关键字Distinct的详细介绍

    这篇文章主要介绍了MySQL关键字Distinct的详细介绍的相关资料,需要的朋友可以参考下
    2017-07-07
  • MySQL使用游标批量处理进行表操作

    MySQL使用游标批量处理进行表操作

    这篇文章主要介绍了MySQL使用游标批量进行表操作,包括批量添加索引、批量添加字段等,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • mysql如何在存储过程中输出日志信息

    mysql如何在存储过程中输出日志信息

    这篇文章主要介绍了mysql如何在存储过程中输出日志信息问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • mysql distinct去重,IFNULL空值处理方式

    mysql distinct去重,IFNULL空值处理方式

    文章介绍了如何在MySQL中使用`DISTINCT`命令去重和使用`IFNULL`函数处理空值,首先,通过Navicat新建数据库并准备数据,然后展示了如何使用`DISTINCT`命令去除重复数据和使用`IFNULL`函数将空值替换为“暂无”
    2025-01-01
  • mysql自增长id用完了该怎么办

    mysql自增长id用完了该怎么办

    如果你用过或了解过MySQL,那你一定知道自增主键了,下面这篇文章主要给大家介绍了关于mysql自增长id用完了该怎么办的相关资料,需要的朋友可以参考下
    2022-02-02
  • MySQL8.0新特性之不可见主键的使用

    MySQL8.0新特性之不可见主键的使用

    MySQL8.0.30版本引入不可见主键,它可以自动为没有显式指定主键的 InnoDB 表创建一个不可见的主键,本文主要介绍了MySQL8.0新特性之不可见主键的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04

最新评论