一:含义

嵌套在其他语句内部的select语句称之为子查询或内查询

外套的语句还可以是 insert,update,delete,一般用select比较多

外面如果是select语句,我们称之为外查询,或主查询

二:分类

①按照出现的位置

select 后面 :仅仅支持标量子查询

from 后面: 表查询

where 或having 后面: 标量子查询,列子查询,行子查询

exists后面: 标量子查询,列子查询,行子查询,表子查询

select 后面 接的是列表,标量子查询的结果应该也是一个列表

from 后面  接的是表,所以是表查询

②按照结果集的行列

标量子查询:结果集为一行一列

行子查询:结果集为 一行多列

列子查询:结果集为一列多行

表子查询:结果集为多行多列

三 举例

1.标量子查询 :

#案例:查询最低工资的员工姓名和工资
select last_name,salary
from employees
where salary=(
select min(salary) from employees
);

列子查询:

#案例:查询所有是领导的员工姓名
select last_name
from employees
where employee_id in(
select manager_id
from employees
);

DQL-子查询的更多相关文章

  1. MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项 DML DDL DQL mysql面试题 truncate与delete的区别

    DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...

  2. MySQL中的DML、DQL和子查询

    一.MySQL中的DML语句 1.使用insert插入数据记录: INSERT INTO `myschool`.`student` (`studentNo`, `loginPwd`, `student ...

  3. SELECT中(非常)常用的子查询操作

    MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...

  4. sql语句增删改查与子查询

    修改表 修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02 ...

  5. SELECT中常用的子查询操作

    MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...

  6. 6.2笔记-DQL语句查询数据库

    一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...

  7. 深入理解MySql子查询IN的执行和优化

    IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...

  8. Mysql - 性能优化之子查询

    记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的. 那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理. 当Mysql Server ...

  9. 在SQL Server中为什么不建议使用Not In子查询

        在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下       下面 ...

  10. 读书笔记--SQL必知必会11--使用子查询

    11.1 子查询 查询(query),任何SQL语句都是查询.但此术语一般指SELECT语句. SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询. 作为子查询的SELECT语句只能 ...

随机推荐

  1. Found 1 slaves: Use of uninitialized value in printf at /usr/local/percona-toolkit/bin/pt-online-schema-change line 8489

    1. problem description: as the title show, i miss the first problem using pt-online-schema-change to ...

  2. Grunt实例

    module.exports = function(grunt) { // 项目配置 grunt.initConfig({ pkg: grunt.file.readJSON('package.json ...

  3. webservice使用windows身份验证,ajax请求报错401未授权的解决办法

    $.ajax({ type: "GET", url: service_url, dataType: "xml", data: "ParamId=&qu ...

  4. jQuery ajax调接口时跨域

    解决方法提炼 一.jsonp方法 在前端ajax配置jsonp参数,在后台配置jsonp设置,具体方法自行百度 二. 参考同源策略 把前端静态页面放在tomcat内webapp下,和后台文件同目录, ...

  5. 如何对MySQL数据库中的数据进行实时同步

  6. Android TabHost切换选项卡实现数据实时刷新

    手机界面大小有限,使用TabHost可以达到在一个Activity中放入多个容器(界面)的效果.但存在一个问题是,当数据信息在一个容器(界面)中有所改变时,需要在用户切换选项卡到其他容器(界面)的时候 ...

  7. 【Python】区分List 和String

    区分String和list String can't mutate 每次变更实质上开辟新的资源 List 可变更 警惕指针

  8. Python类型总结

    python 中处处是类的实例化 a=1 存储的是数字类型 而b='123'是字符串类型 []:读写方便的一张类型 True判断真假的一组{}键值对形式 class:则是描述静态元素和动态元素的结合体 ...

  9. Linux内核收包过程

    net/core/dev.c int __init net_dev_init(void) { queue->backlog.poll = process_backlog; open_softir ...

  10. Linux下SVN安装配置及应用

    一.安装篇 centos下yum安装 yum install subversion 查看安装是否成功: svnserve --version 二.配置篇 创建svn版本库目录 mkdir /home/ ...