MySQL—多表查询—内连接

一、引言

(1)内连接查询语法

内连接查询的是两张表的交集部分的数据。(也就是绿色部分展示的数据)

(2)内连接有两种形式:

1、隐式内连接

语法结构:

2、显示内连接

语法结构:

注意:

显示内连接的语法主要是在 FROM 之后。

表1 [ inner ] join 表2 on 连接条件 ...

INNER:是可以省略的

两者的区别:

第一、在于它们的表的连接的形式。第二,连接条件的表示形式。

接下来去工具 DataGrip 通过两个需求去演示一下 隐式内连接 和 显示内连接。

二、实操

(0)两张表的结构以及数据展示

员工表:emp

部门表

(1)查询每一个员工的姓名,及关联的部门的名称 (隐式内连接实现)
1、分析

表结构:员工表 emp ,部门表 dept

2、连接条件(外键)

emp.dept_id = dept.id

3、开始编写
sql 复制代码
SELECT emp.name,dept.name FROM emp,dept WHERE( emp.dept_id = dept.id );

问题:

我们发现在进行多表查询的时候,如果表名比较长,如果我们要去指定字段名,就要在前面加上这个比较长的表名。这样使用起来比较麻烦。

所以为了简化表名,我们可以为表去起一个别名。

注意:

此时,起了别名之后,就不能再直接通过之前的表名名称去限制字段(条件)。因为对于DQL 的执行顺序,先执行的是 FROM 。

(2)查询每一个员工的姓名,及关联的部门的名称 (显式内连接实现)
1、分析

显示内连接,对应着关键字:表1 INNER JOIN 表2 ON 连接条件 ...;

2、编写SQL语句
sql 复制代码
/*INNER 可省略*/
SELECT e.name,d.name FROM emp e INNER JOIN dept d ON e.dept_id = d.id;
SELECT e.name,d.name FROM emp e JOIN dept d ON e.dept_id = d.id;

以上就是这篇博客的关于内连接的查询语法:隐式内连接和显示内连接。

相关推荐
橘猫云计算机设计1 分钟前
基于Django的购物商城平台的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·spring boot·后端·django
2501_903238654 分钟前
Spring Boot日志配置与环境切换实战
数据库·spring boot·后端·个人开发
梓沂7 分钟前
审计级别未启用扩展模式导致查询 DBA_AUDIT_TRAIL 时 SQL_TEXT 列为空
数据库·sql·dba
Smile丶凉轩31 分钟前
数据库面试知识点总结
数据库·c++·mysql
RainbowSea2 小时前
9-1. MySQL 性能分析工具的使用——last\_query\_cost,慢查询日志
数据库·sql·mysql
Sui_Network2 小时前
Sui 如何支持各种类型的 Web3 游戏
大数据·数据库·人工智能·游戏·web3·区块链
猿java2 小时前
很多程序员会忽略的问题:创建 MySQL索引,需要注意什么?
java·后端·mysql
ZKNOW甄知科技2 小时前
IT服务运营管理体系的常用方法论与实践指南(上)
大数据·数据库·人工智能
黄雪超3 小时前
深入HBase——核心组件
数据结构·数据库·hbase
我爱松子鱼3 小时前
mysql之InnoDB Buffer Pool 深度解析与性能优化
android·mysql·性能优化