连接查询

  内连接

    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; -- (隐式内连接)

    

多表查询 —— 内连接&外连接&子查询的更多相关文章

  1. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  2. mysql(4)—— 表连接查询与where后使用子查询的性能分析。

    子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...

  3. 知识点:Oracle+表连接方式(内连接-外连接-自连接)+详解 来自百度文库

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制)        (3)全外连接(左右 ...

  4. sql内连接外连接自然连接

    为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...

  5. MySQL 查询语句--------------进阶7:子查询

    #进阶7:子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或者内查询 外部的查询语句,称为主查询或外查询 分类: 按照子查询出现的位置: select后面:只支持标量子查询 fro ...

  6. DQL---连接查询(内连接、外连接)、子查询、分页查询

    一.连接查询 1.连接查询建立在有相互关系的两个表间,进行两个及两个以上的表或视图的查询. 2.对n张表进行查询,至少需要n-1个连接表的条件. 二.笛卡尔积(容易造成数据库宕机) 1.指表中每行元素 ...

  7. 【cl】多表查询(内、外连接)

    交叉连接(cross join):该连接产生的结果集笛卡尔积 a有7行,b有8行    a的第一行与b的每一行进行连接,就有8条a得第一行 7*8=56条 select a.real_name,s.u ...

  8. oracle 内连接 外连接 查询 笔记

    elect ename,job,sal from emp where deptno>10 order by sal desc; 联合查询,PK dept.deptno FK emp.deptno ...

  9. 【SQL】多表查询中的 外连接 ,on,where

    先简单粗暴给个结论,多表连结查询中,on比where更早起作用,系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行匹配过滤,where后语句为真,则能查询出来,而通过外连接 ...

  10. mysql8必知必会7 连接 内连接 外连接 交叉连接

    /* 2 需求:建立产品和分类表 1.查询每种分类的产品数量,没有产品的分类也要统计.(cname,quantity) 2.根据分类名称查询分类中的所有产品 */ -- --------------- ...

随机推荐

  1. Python 基于pymongo操作Mongodb学习总结

    实践环境 Python 3.6.4 pymongo 4.1.1 pymongo-3.12.3-cp36-cp36m-win_amd64.whl 下载地址:https://pypi.org/simple ...

  2. 计算机网络中的检验和(checksum)(包括计算文件的检验和附有c++代码)

    介绍: 检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和.它通常是以十六进制为数制表示的形式.如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校 ...

  3. 浅谈 MySQL 连表查询

    浅谈 MySQL 连表查询 连表查询是一把双刃剑, 优点是适应范式, 减少数据冗余; 缺点是连表查询特别是多张表的连表会增加数据库的负担, 降低查询效率. 简介 连表查询就是 2 张表或者多张表的联合 ...

  4. Ubuntu 20.04 双系统安装完整教程

    1.查看电脑的信息 1.1 查看BIOS模式 "win+r"快捷键进入"运行",输入"msinfo32"回车,出现以下界面,可查看BIOS模 ...

  5. ComfyUI插件:ComfyUI layer style 节点(二)

    前言: 学习ComfyUI是一场持久战,而ComfyUI layer style 是一组专为图片设计制作且集成了Photoshop功能的强大节点.该节点几乎将PhotoShop的全部功能迁移到Comf ...

  6. 【Layui】05 进度条 Progress

    文档地址: https://www.layui.com/doc/element/progress.html 演示案例: <div class="layui-progress" ...

  7. 阿里2021年春季实习笔试题(最后一道大题)(2020 China Collegiate Programming Contest, Weihai Site) (C. Rencontre codeforces.com/gym/102798)

    实验室的慕师弟phd马上要毕业了,正准备先找个实习,投了阿里2021年春季实习的招聘,遇到最后一道编程大题没有思路事后找到了该题的最原始出处,即 2020 China Collegiate Progr ...

  8. error while loading shared libraries: libxml2.so.2: cannot open shared object file 解决方法

    参考: https://blog.csdn.net/qq_39779233/article/details/128215517 ==================================== ...

  9. Vector源码解读

    1.背景 阅读源码是提高编程技能的有效方式... 面试中也经常问到源码相关的问题..... 2.源码解读 在解读Vector时大家可以先解读ArrayList,因为这个两个的逻辑几乎是一样的.... ...

  10. 推荐一款界面优雅、功能强大的 .NET + Vue 权限管理系统

    前言 今天推荐一款用 .NET 和 Vue3 实现的开源权限管理系统.它的界面清爽干净,功能强大,还具备灵活的角色权限分配功能,能够满足不同规模企业的管理需求.无论你是开发新手还是大神,都能轻松上手, ...