mysql 什么是子查询_MySQL之子查询
测试数据
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之子查询相关推荐
- mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...
- mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程
MysqL 列子查询及 IN.ANY.SOME 和 ALL 操作符的使用MysqL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如 ...
- mysql 同表子查询_MySQL 表子查询
MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据. MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: aidtitlecontentu ...
- golang mysql多表查询_MySQL多表查询
一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...
- Mysql 修改 复杂的汇总_MySQL数据分析:复杂查询
本篇文章内容为;MySQL的复杂查询,针对工作中常见的sql操作,提出自己的意见. 主题为:视图.子查询(包括标量子查询.关联子查询) 首先,我们依旧先进入提问环节:如果我们需要经常性的某列数据进行汇 ...
- mysql数据库实验3查询_mysql数据库(3)-查询
数据库设计规范 查询 创建数据库.数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1 ...
- mysql 联表详解_MySQL多表查询详解
多表查询 1. 表与表之间的关系 <1> 一对一用户表和身份信息表,用户表是主表 男人表.女人表 create table man(mid int primary key auto_inc ...
- MySQL列数不确定查询_MySQL的高级查询
高级查询: 1.连接查询 指把2张表或者多张表之间做一个连接,所有数据放在一个表里显示.适用于有外键关系的2张表或多张表.如果没有加外键关系,但是这2张表有联系,也可以加连接查询. sele ...
- mysql离散查询_mySQL数据库数据查询操作详解
查询数据: 简单查询: 1.查询所有数据: select * from 表名 #select * from info 查询所有列 2.查询指定列: select code,name from info ...
最新文章
- Duilib技巧:背景图片平铺
- 11个强大的Visual Studio调试小技巧
- mysql待办事项表名_SSD8-Ex4待办事项列表答案参考
- ITK:优化简单的抛物面函数
- 1-9-假期训练心得(dp+bfs)
- SQL(一)- 数据库介绍与基础操作
- c语言取子程序地址,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
- 【Elasticsearch】Elasticsearch之元数据(meta-fields)介绍
- GoogLeNet网络的Pytorch实现
- 极简darknet环境搭建记录
- sklearn学习笔记之metrics
- 【javascript培训第一天】语言基础
- rapidxml库生成xml小例子及需注意的问题
- Win10如何下载安装Java,配置环境变量,并顺利的使用系统发育树编辑软件figtree,需要java环境的软件都可依此教程下载安装配置
- python3几种常见解压压缩包的方法
- java迁移框架_Java敏捷数据库迁移框架——Flyway
- 【转载】Web2.0创业时代将终结
- 【求职】江苏省 2020 年大学生核心就业能力培训笔记
- 手把手教您用虹科MatrikonOPC UA数据平台掌握您所有的UA服务器
- 当有人推荐你读什么书时你是属于哪一种