一、引言
(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、开始编写
sqlSELECT 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;
以上就是这篇博客的关于内连接的查询语法:隐式内连接和显示内连接。