数据库-MySQL-基础(10)-内连接,外连接,自连接

目录

内连接

内连接查询语法

 案例演示

外连接

外连接查询的语法

案例演示 

自连接

自连接查询语法

案例演示


内连接

内连接查询语法

——隐式内连接

SELECT 字段列表 FROM 表1,表2 WHERE 条件... ;

——显示内连接

SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件...;

注: inner 可以省略

内连接查询得是俩张表交集的部分

 案例演示

初始的emp表为 

  dept表为

 注意:

最开始写代码的时候,要先写 select * from .....,然后写完之后,通过取别名就可以把前面 * 根据自己所需要查询内容替换掉,注意 * 代表显示所有字段

 代码

--内连接演示
--1、查询每个员工的姓名,以及关联的部门名称(隐式内连接实现)
--表机构 emp dept
--连接条件: emp.dept id = dept.id

select emp.name ,dept.name from emp,dept where emp.dept_id = dept_id;
--使用别名
select e.name ,d.name from emp e,dept d where  e.dept_id = dept_id;

--2、查询每个员工的姓名及关连部门的名称(显示内连接实现)
--表机构 emp dept
--连接条件: emp.dept id = dept.id

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;

注意:使用内连接的时候如果这个员工的部门没有编号,那么就查询不到

查询结果


外连接

外连接查询的语法

——左外连接

SELECT 字段列表 FROM LEFT [OUTER] JOIN 表2 ON 条件

 相当于查询表1(左表)的所有数据包含表1和表2交集部分的数据·

——右连接

SELECT 字段列表 RIGHT  LEFT [OUTER] JOIN 表2 ON 条件

 相当于查询表2(右表)的所有数据包含表1和表2交集部分的数据·

 outer 可以省略

案例演示 

代码(左外连接)

--1.查询emp表中所有数据,和对应部门信息(左外连接)
-- 表结构: emp ,dept
-- 连接条件: emp.dept_id = dept.id

select e.*,d.name from emp e left outer join  dept d on e.dept_id = d.id;

查询结果

代码(右连接) 

--2.查询dept表中所有数据和对应员工信息(右外连接)
select d.*,e.* from emp e right outer join  dept d on e.dept_id = d.id;

查询结果


自连接

自连接查询语法

SELECT 字段列表 FROM 表A  别名A  JOIN 表A 别名 B ON 

自连接查询,可以是内连接查询,也可以是外连接查询

案例演示

代码:内连接查询

--1.查询员工及其所属领导的名字

select a.name ,b.name from emp a ,emp b where a.managerid = b.id;

 查询结果

 代码:外连接查询

--2.查询所有员工emp 及其领导的名字emp ,如果员工没有领导也要查询出结果
--表结构 emp a ,emp b;
select * from emp a left join emp b on a.managerid = b.id;

 查询结果

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫浅子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值