sql中左连接和内连接的区别-SQL

admin2年前 (2024-06-05)基础运维知识384
点击下载TXT

SQL 中左连接和内连接的区别

在 SQL 中,连接是将来自不同表的行组合在一起的强大工具。左连接和内连接是两种最常用的连接类型,它们在返回的结果方面有不同的行为。

左连接

左连接(LEFT JOIN)返回来自左表的所有行,即使右表中没有匹配的行。如果右表中没有匹配的行,则右表字段的值将显示为 NULL。

内连接

内连接(INNER JOIN)仅返回来自左表和右表中具有匹配行的行。如果没有匹配的行,则该行将不会被返回。

比较

特性 左连接 内连接
返回左表行 所有 仅匹配
处理右表空值 显示为 NULL 忽略
性能 较慢 较快
用例 获取左表所有数据,即使右表中没有匹配项 仅获取具有匹配行的行

示例

考虑以下两个表:

左表:
| id | 名称 |
|---|---|
| 1 | John |
| 2 | Mary |
| 3 | Bob |

右表:
| id | 地址 |
|---|---|
| 1 | 123 Main St |
| 2 | 456 Elm St |
登录后复制

左连接

SELECT *
FROM 左表
LEFT JOIN 右表
ON 左表.id = 右表.id;
登录后复制

结果:

id 名称 地址
1 John 123 Main St
2 Mary 456 Elm St
3 Bob NULL

内连接

SELECT *
FROM 左表
INNER JOIN 右表
ON 左表.id = 右表.id;
登录后复制

结果:

id 名称 地址
1 John 123 Main St
2 Mary 456 Elm St

正如您所看到的,左连接返回了左表的所有行,即使右表中没有匹配的行。而内连接只返回了两个表中都有匹配行的行。

相关文章

mysql怎么更改安装路径-mysql教程

如何更改 MySQL 安装路径 问题:如何在不重新安装 MySQL 的情况下更改 MySQL 的安装路径? 回答: 步骤: 关闭所有 MySQL 服务:停止 MySQL 数据库服务和其他相关服务...

mysql怎么导入数据库的文件-mysql教程

MySQL 导入数据库文件 如何导入数据库文件? 导入数据库文件到 MySQL 数据库可以通过以下步骤实现: 步骤 1:连接到数据库 使用 MySQL 命令行客户端或其他数据库工具连接到需要导入数据...

sql编辑数据怎么加一列-SQL

SQL 中添加一列 在 SQL 中,可以通过使用 ALTER TABLE 语句向现有表中添加一列。语法如下: ALTER TABLE table_name ADD column_name data_...

sql循环语句怎么使用-SQL

SQL 循环语句的用法 循环语句在 SQL 中用于重复执行一段代码,直到满足特定条件。常用的 SQL 循环语句包括: WHILE 循环:只要条件为真,就重复执行一段代码。 REPEAT 循环:...

oracle安装失败怎么办-Oracle

Oracle 安装失败怎么办 在安装 Oracle 时遇到失败的问题是常见的。本文将提供一系列步骤帮助您解决安装失败问题。 步骤 1:检查先决条件 确保您的系统满足 Oracle 系统要求。 检查...

mysql乐观锁怎么用-mysql教程

MySQL乐观锁:如何使用 乐观锁是一种并发控制机制,它假设事务在提交时不会发生冲突。与悲观锁相反,乐观锁不会在事务开始时就锁定数据。 如何使用MySQL乐观锁: 1. 设置版本号列 为经常更新的表...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。