DQL-子查询
一:含义
嵌套在其他语句内部的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-子查询的更多相关文章
- MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项 DML DDL DQL mysql面试题 truncate与delete的区别
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...
- MySQL中的DML、DQL和子查询
一.MySQL中的DML语句 1.使用insert插入数据记录: INSERT INTO `myschool`.`student` (`studentNo`, `loginPwd`, `student ...
- SELECT中(非常)常用的子查询操作
MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...
- sql语句增删改查与子查询
修改表 修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02 ...
- SELECT中常用的子查询操作
MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...
- 6.2笔记-DQL语句查询数据库
一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...
- 深入理解MySql子查询IN的执行和优化
IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...
- Mysql - 性能优化之子查询
记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的. 那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理. 当Mysql Server ...
- 在SQL Server中为什么不建议使用Not In子查询
在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下 下面 ...
- 读书笔记--SQL必知必会11--使用子查询
11.1 子查询 查询(query),任何SQL语句都是查询.但此术语一般指SELECT语句. SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询. 作为子查询的SELECT语句只能 ...
随机推荐
- 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 ...
- Grunt实例
module.exports = function(grunt) { // 项目配置 grunt.initConfig({ pkg: grunt.file.readJSON('package.json ...
- webservice使用windows身份验证,ajax请求报错401未授权的解决办法
$.ajax({ type: "GET", url: service_url, dataType: "xml", data: "ParamId=&qu ...
- jQuery ajax调接口时跨域
解决方法提炼 一.jsonp方法 在前端ajax配置jsonp参数,在后台配置jsonp设置,具体方法自行百度 二. 参考同源策略 把前端静态页面放在tomcat内webapp下,和后台文件同目录, ...
- 如何对MySQL数据库中的数据进行实时同步
- Android TabHost切换选项卡实现数据实时刷新
手机界面大小有限,使用TabHost可以达到在一个Activity中放入多个容器(界面)的效果.但存在一个问题是,当数据信息在一个容器(界面)中有所改变时,需要在用户切换选项卡到其他容器(界面)的时候 ...
- 【Python】区分List 和String
区分String和list String can't mutate 每次变更实质上开辟新的资源 List 可变更 警惕指针
- Python类型总结
python 中处处是类的实例化 a=1 存储的是数字类型 而b='123'是字符串类型 []:读写方便的一张类型 True判断真假的一组{}键值对形式 class:则是描述静态元素和动态元素的结合体 ...
- Linux内核收包过程
net/core/dev.c int __init net_dev_init(void) { queue->backlog.poll = process_backlog; open_softir ...
- Linux下SVN安装配置及应用
一.安装篇 centos下yum安装 yum install subversion 查看安装是否成功: svnserve --version 二.配置篇 创建svn版本库目录 mkdir /home/ ...