测试数据

create table emp (id int,name char(10),sex char,age int,dept_id int,job char(10),salary double);

insert into emp values

(1,"刘备","男",26,1,"总监",5800),

(2,"张飞","男",24,1,"员工",3000),

(3,"关羽","男",30,1,"员工",4000),

(4,"孙权","男",25,2,"总监",6000),

(5,"周瑜","男",22,2,"员工",5000),

(6,"小乔","女",31,2,"员工",4000),

(7,"曹操","男",19,3,"总监",10000),

(8,"司马懿","男",24,3,"员工",6000);

create table dept(id int primary key,name char(10));

insert into dept values(1,"市场"),(2,"行政"),(3,"财务");

1. 什么是子查询

​当一个查询是另一个查询的条件时,这个查询称之为子查询(内层查询)

​什么时候用?

​当查询需求比较复杂,一次性查询无法得到结果,需要多次查询时,

​例如:给出一个部门名称,需要获得该部门所有的员工信息

​分析:

​1.需要先确定部门的id

​2.然后才能通过id确定员工

​解决问题的方式是把一个复杂的问题拆分为若干个简单的问题

2. 如何使用?

首先明确子查询就是一个普通的查询,当一个查询需要作为子查询使用时,用括号包裹即可

3. 需要注意

​in中的子查询只能包含一个列

​例如:查询财务部有哪些人

​正确的写法:select name from emp where dept_id in (select id from dept where name = "财务");

​错误的写法:select name from emp where dept_id in (select * from dept where name = "财务");

关键字:exists

exists后跟子查询,子查询有结果是为True,没有结果时为False。为True时外层执行,为False外层不执行

如何使用?

select *from emp where exists (select *from emp where salary > 1000);

前面 exists 后面

如果 后面 查询有结果时,前面 才会执行

mysql 什么是子查询_MySQL之子查询相关推荐

  1. mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引

    一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...

  2. mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程

    MysqL 列子查询及 IN.ANY.SOME 和 ALL 操作符的使用MysqL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如 ...

  3. mysql 同表子查询_MySQL 表子查询

    MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据. MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: aidtitlecontentu ...

  4. golang mysql多表查询_MySQL多表查询

    一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...

  5. Mysql 修改 复杂的汇总_MySQL数据分析:复杂查询

    本篇文章内容为;MySQL的复杂查询,针对工作中常见的sql操作,提出自己的意见. 主题为:视图.子查询(包括标量子查询.关联子查询) 首先,我们依旧先进入提问环节:如果我们需要经常性的某列数据进行汇 ...

  6. mysql数据库实验3查询_mysql数据库(3)-查询

    数据库设计规范 查询 创建数据库.数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1 ...

  7. mysql 联表详解_MySQL多表查询详解

    多表查询 1. 表与表之间的关系 <1> 一对一用户表和身份信息表,用户表是主表 男人表.女人表 create table man(mid int primary key auto_inc ...

  8. MySQL列数不确定查询_MySQL的高级查询

    高级查询: 1.连接查询      指把2张表或者多张表之间做一个连接,所有数据放在一个表里显示.适用于有外键关系的2张表或多张表.如果没有加外键关系,但是这2张表有联系,也可以加连接查询. sele ...

  9. mysql离散查询_mySQL数据库数据查询操作详解

    查询数据: 简单查询: 1.查询所有数据: select * from 表名 #select * from info 查询所有列 2.查询指定列: select code,name from info ...

最新文章

  1. Duilib技巧:背景图片平铺
  2. 11个强大的Visual Studio调试小技巧
  3. mysql待办事项表名_SSD8-Ex4待办事项列表答案参考
  4. ITK:优化简单的抛物面函数
  5. 1-9-假期训练心得(dp+bfs)
  6. SQL(一)- 数据库介绍与基础操作
  7. c语言取子程序地址,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  8. 【Elasticsearch】Elasticsearch之元数据(meta-fields)介绍
  9. GoogLeNet网络的Pytorch实现
  10. 极简darknet环境搭建记录
  11. sklearn学习笔记之metrics
  12. 【javascript培训第一天】语言基础
  13. rapidxml库生成xml小例子及需注意的问题
  14. Win10如何下载安装Java,配置环境变量,并顺利的使用系统发育树编辑软件figtree,需要java环境的软件都可依此教程下载安装配置
  15. python3几种常见解压压缩包的方法
  16. java迁移框架_Java敏捷数据库迁移框架——Flyway
  17. 【转载】Web2.0创业时代将终结
  18. 【求职】江苏省 2020 年大学生核心就业能力培训笔记
  19. 手把手教您用虹科MatrikonOPC UA数据平台掌握您所有的UA服务器
  20. 当有人推荐你读什么书时你是属于哪一种

热门文章

  1. Ubuntu 12.04 创建应用程序启动项(可在Unity LaucherPad显示)
  2. 无锡设计培训——服装设计师的工作职责
  3. 调用迅雷api下载资源
  4. 一剪梅(一片春愁待酒浇)宋(蒋捷)
  5. php读取decimal显示00000,对decimal 类型的数据进行获取调整
  6. mysql decimal类型详解
  7. HiveMq自动重连
  8. scaleform 注意事项
  9. 图像拼接:matlab自带的拼接示例程序
  10. python的变量需要声明赋值才能使用_Python变量的定义和使用