数据库-MySQL-基础(10)-内连接,外连接,自连接
2023-06-13 09:13:09 时间
目录
内连接
内连接查询语法
——隐式内连接
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;
查询结果
相关文章
- linux MySQL启动命令
- idea社区版连接mysql数据库[通俗易懂]
- 操作MySQL数据库:操作SQL语句必备技能(mysql数据库sql语句)
- 快速完成MySQL批量数据导入(mysql批量导入)
- 设置MySQL 行 ID 设置指南(mysql行id)
- 导出MySQL数据:按条件快速精准(mysql按条件导出数据)
- MySQL 数据库误删除恢复:重新开始(mysql数据库误删恢复)
- MySQL中排序Null值的技巧(mysql排序null)
- 掌握MySQL查询日志记录,极大提升数据库管理效率(mysql查询日志记录)
- 防止mysql SQL注入攻击的措施(Mysql的sql注入)
- 连接MySQL服务器:快速开启你的数据库之旅(连接到mysql服务器)
- MySQL 查库:了解数据库信息的必备技能(mysql查库)
- MySQL 无法启动:这些因素可能导致结果(mysql 不能启动)
- 如何禁用MySQL服务?(mysql服务禁用)
- MySQL数据保持一致的重要性(mysql数据不一致)
- C语言程序设计操作MySQL数据库(c 使用mysql数据库)
- MySQL读取浮点数的技巧(c mysql读取浮点数)
- MySQL的host存储位置解决您的数据库连接疑惑(mysql中host在哪)
- MySQL中EX掌握数据库索引优化的利器(mysql中ex)
- 20分钟快速掌握MySQL(20分钟学会mysql)
- MySQL数据库恢复之旅dmp文件传奇(.dmp mysql)
- Mysql三索引abc,提升数据库效率(Mysql三个索引abc)
- MySQL实现七日均值计算(mysql七日均值)
- 解决MySQL数据库不在集合内的问题(mysql不在集合内)
- MySQL数据库禁止删除数据表中的列(mysql不允许删除列)
- MySQL 空字段查询找出不为空的字段名(mysql不为空字段名)
- 免费下载MySQL 2005,轻松上手数据库操作(mysql下载2005)