多表查询 —— 内连接&外连接&子查询
连接查询

内连接
1、查询语法
-- 隐式内连接
select 字段列表 from 表1, 表2... where 条件; -- 显式内连接
select 字段列表 from 表1 [INNER] join 表2 on 条件;
(1)隐式内连接
-- 隐式内连接
select * from emp, dept where emp.dep_id = dept.did;
(2)显式内连接
-- 显式外连接
select * from emp inner join dept on emp.dep_id = dept.did;

多表查询中要查询单独字段时 —— 使用 emp.id emp.name 这种格式 若表名称比较长,需要起别名
-- 查询 name, gender, salary, dname
select emp.name, emp.gender, emp.salary, dept.dname from emp, dept where emp.dep_id = dept.did; -- 给表起别名
select t1.name, t1.gender, t1.salary, t2.dname from emp t1, dept t2 where t1.dep_id = t2.did;

外连接
1、 外连接查询语法
-- 左外连接
select 字段列表 from 表1 left [outer] join 表2 on 条件 -- 右外连接
select 字段列表 from 表1 right [outer] join 表2 on 条件
左外连接:
-- 左外连接
-- 查询emp表所有数据和对应的部门信息
select * from emp left outer join dept on emp.dep_id = dept.did;

右外连接:
-- 右外连接
-- 查询dept表所有数据和对应的员工信息
Select * from dept right outer join emp on dept.did = emp.dep_id;

子查询
1、 概念: 查询中嵌套查询,称嵌套查询为子查询
2、 子查询根据查询结果不同,作用不同
单行单列:作为条件值,使用 = 、!= 、>、< 等进行条件判断
select 字段列表 from 表 where 字段名 = ();
例:
-- 查询工资高于 赵六 的员工信息
select * from emp where salary > (select salary from emp where name = '赵六');
多行单列:作为条件值,使用 in 等关键字进行条件判断
select 字段列表 from 表 where 字段名 in (子查询);
例:
-- 查询‘财务部‘和‘运营部‘所有的员工信息
select * from emp where dep_id in(select did from dept where dname = '财务部' or dname = '运营部');
多行多列:作为虚拟表
select 字段列表 from (子查询) where 条件;
例:
-- 查询入职日期是‘2015-11-11‘之后的员工信息和部门信息
select * from emp where join_date > '2015-11-11'; -- ① select * from emp LEFT OUTER JOIN dept on emp.dep_id = dept.did; -- 左外连接 ②
select * from emp, dept where emp.dep_id = dept.did; -- 隐式内连接③
-- 合二为一 ① ② 或① ③ 替换掉 emp
select * from (select * from emp where join_date > '2015-11-11') t1 LEFT OUTER JOIN dept on t1.dep_id = dept.did; -- (左外连接)
select * from (select * from emp where join_date > '2015-11-11') t1, dept where t1.dep_id = dept.did; -- (隐式内连接)
多表查询 —— 内连接&外连接&子查询的更多相关文章
- mysql数据库中的多表查询(内连接,外连接,子查询)
用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...
- mysql(4)—— 表连接查询与where后使用子查询的性能分析。
子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...
- 知识点:Oracle+表连接方式(内连接-外连接-自连接)+详解 来自百度文库
Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右 ...
- sql内连接外连接自然连接
为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...
- MySQL 查询语句--------------进阶7:子查询
#进阶7:子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或者内查询 外部的查询语句,称为主查询或外查询 分类: 按照子查询出现的位置: select后面:只支持标量子查询 fro ...
- DQL---连接查询(内连接、外连接)、子查询、分页查询
一.连接查询 1.连接查询建立在有相互关系的两个表间,进行两个及两个以上的表或视图的查询. 2.对n张表进行查询,至少需要n-1个连接表的条件. 二.笛卡尔积(容易造成数据库宕机) 1.指表中每行元素 ...
- 【cl】多表查询(内、外连接)
交叉连接(cross join):该连接产生的结果集笛卡尔积 a有7行,b有8行 a的第一行与b的每一行进行连接,就有8条a得第一行 7*8=56条 select a.real_name,s.u ...
- oracle 内连接 外连接 查询 笔记
elect ename,job,sal from emp where deptno>10 order by sal desc; 联合查询,PK dept.deptno FK emp.deptno ...
- 【SQL】多表查询中的 外连接 ,on,where
先简单粗暴给个结论,多表连结查询中,on比where更早起作用,系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行匹配过滤,where后语句为真,则能查询出来,而通过外连接 ...
- mysql8必知必会7 连接 内连接 外连接 交叉连接
/* 2 需求:建立产品和分类表 1.查询每种分类的产品数量,没有产品的分类也要统计.(cname,quantity) 2.根据分类名称查询分类中的所有产品 */ -- --------------- ...
随机推荐
- [oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
字体样式 回忆上次内容 m 可以改变字体样式 0-10 之间设置的都是字体效果 0 复原 1 变亮 2 变暗 从3到10 又是什么效果 呢?? 真的可以blink闪烁吗? 3m 3m 实现斜体字的效果 ...
- elasticsearch初步使用学习
通过使用elasticsearch,我们可以加快搜索时间(直接使用SQL的模糊查询搜索耗时会比较久,而且elasticsearch的响应耗时与数据量关系不大) es主要用于存储,计算,搜索数据 依次部 ...
- innodb存储引擎了解
mysql常用的存储引擎分为innodb和myisam 其中innodb具有支持事务,执行行级锁,支持MVCC,外键,自动增长列,崩溃恢复等特性.并且mysql在5.5.5之后是数据的默认存储引擎 文 ...
- jmeter测试udp广播(jmeter发送udp)
jmeter测试udp广播(jmeter发送udp) jmeter测试udp广播(jmeter接收udp) 先下载安装第三方插件 下载链接:https://jmeter-plugins.org/ins ...
- 基于 TrueLicense 项目证书生成
一.创建公钥私钥 1.首先要用 KeyTool 工具来生成私匙库:(-alias别名 -validity 3650 表示10年有效,这个时间不是License的过期时间) keytool -genke ...
- 【Scala】02 循环
1.支持集合直接作为循环体的条件: // - - - - 支持集合遍历 - - - - var arr = Array(10, 20, 30) var arr2 = List(10, 20, 30) ...
- 【JSON】JavaScript Object Notation JS对象表示规则
什么是 JSON? JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. JSON采用完全独立于语言的文本格式 ...
- 【Layui】02 图标 Icon
官网下载地址: https://www.layui.com/ 学习参考: https://www.bilibili.com/video/BV1ct411n7SN [Layui的文件结构] 我们只需要这 ...
- 国产AI发展是百家争鸣还是疯狂内卷(内耗)?
本文纯属闲谈(吐槽) 国外搞深度学习弄出了TensorFlow(编译型)以后推到工业界和学术界,但是由于其不好用(太过于复杂),同一时间另一个框架pytorch(非编译型).由于pytorch是非编译 ...
- 中国2023年GDP增速5.2%
在中美贸易战和三年全球疫情的大背景下,我国的经济依旧保持强有力的增速,这表明了经济发展不断转好,一切恢复到疫情和贸易战之前也是有待期望的.