Mysql--子查询、分页查询、联合查询
一、 子查询的定义
出现在其他语句中的select语句,称为子查询或者内查询,外部的查询语句称为主查询或者外查询,子查询可以包含普通select可以包含的任何语句。
外部查询:select、insert、update、delete、set等,主要就是在select的应用。
二、 子查询的分类
1.按照子查询出现的位置
①select后面:仅仅支持标量子查询
②from后面:支持表子查询
③where或having后面:支持标量子查询、列子查询、行子查询
④exist后:表子查询
2.结果集的行列数
①标量子查询:结果集一行一列
②列子查询:结果一列多行
③行子查询:一行多列
④表子查询:多行多列
3.子查询的特点
①子查放在小括号内
②子查询一般放在条件右侧
③标量子查询,一般搭配着单行操作符使用[> < >= <= = <>]
④列子查询,一般搭配着多行操作符使用[in、any/some、all]
⑤子查询的执行优先于主查询执行,主查询的条件用到了子查询的结果
3.select后面,仅仅支持标量子查询
4.from后面:支持表子查询
其查询结果可以比作一张表,必须给表起别名
5.where或having后面
①支持标量子查询、行子查询、列子查询
②in、any、all的理解
in:等于列表中的任意一个,如:a [10,30,60,80,100],a等于5个数中的任意一个,等价于=any
not in:列表中的任意一个都不等于,如a[10,20,30,40,50] a 不等于其中任何一个,等价于<>all
any/some:和子查询返回的某一个值进行比较,<any表示小于任意一个,等价于<max(字段名)
all:和子查询的所有值进行比较,<all表示小于所有的,等价于<min(字段名)
③标量子查询
④列子查询(一行多列)
⑤行子查询(一行多列)
6.exists后面
语法:exists(完整的查询语句),结果为0或者1
三、 分页查询
由于数据量较大,一页显示不完整,需要分页查询。
1.基本语法:
Select 查询列表 from 表1
[连接类型 join 表2
on 连接条件
where 筛选条件
group by 分组字段
having 分组后筛选
order by 排序字段
limit 分组条件]
2.limit特点
①放在查询语句的最后面
②limit [index,] size index开始的下标,size每页显示的条目数,省略初始位置,默认为0
③公式:limit (page-1)*size,size;page是要显示的页数
四、 联合查询(union)
union: 将多条查询语句的结果合并成一个结果
基本语法:查询语句1 union 查询语句2 union 查询语句3...
基本应用:要查询的结果来自于多个表,且多个表没有直接联系,查询的信息内容一致
①多条查询语句字段数目一致
②要求每一列的类型和顺序尽量一致
③union关键之默认去重,union all可以包含重复项
Mysql--子查询、分页查询、联合查询的更多相关文章
- Mysql的查询语句(联合查询、连接查询、子查询等)
Mysql的各个查询语句(联合查询.连接查询.子查询等) 一.联合查询 关键字:union 语法形式 select语句1 union[union选项] select 语句2 union[union选项 ...
- mysql学习之路_联合查询与子查询
联合查询 联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加). 语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关). Select ...
- 你了解MySQL中的多表联合查询吗?
前言: 多表联合查询,其实就是我们MySQL中的join语句,经常会看到有人说join非常影响性能,不建议使用,你知道这是为什么呢?我们究竟可不可以用呢? 测试数据: CREATE TABLE `t2 ...
- 【MySQL】过滤后的结果集较大,用LIMIT查询分页记录,查询效率不理想
> 参考的优秀文章 优化LIMIT分页--<高性能MySQL>(电子工业出版社) > 场景描述 遇到一个场景:查询排序后的结果集较大,我们采用分页显示,每页显示20条记录,但是 ...
- MySQL开发——【联合查询、多表连接、子查询】
联合查询 所谓的联合查询就是将满足条件的结果进行拼接在同一张表中. 基本语法: select */字段 from 数据表1 union [all | distinct] select */字段 fro ...
- mysql中联合查询
联合查询union 一个翻译问题的解释: 在mysql的手册中,将连接查询(Join)翻译为联合查询: 而联合查询(union),没有明确翻译. 但: 在通常的书籍或文章中,join被翻译为“连接”查 ...
- MySQL数据查询之多表查询
多表查询 多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment PRIMARY KEY, dna ...
- Mybatis.net与MVC入门配置及联合查询动态SQL拼接和简单事务
第一次学习Mybatis.net,在博客园也找到好多资料,但是在配置成功之后也遇到了一些问题,尤其是在动态SQl拼接时候,这里把遇到的问题还有自己写的一个Demo贴出来,希望能帮到新手,有不适合的地方 ...
- MySQL连接查询(多表查询)
基本含义 连接就是指两个或两个以上的表(数据源) “连接起来成为一个数据源”. 连接语法的基本形式:from 表1 [连接方式] join 表2 [on 连接条件]; 连接的结果可以当做一个“表”来使 ...
- [办公自动化] 再读《让EXCEL飞》(从excel导入access数据时,union联合查询,数据源中没有包含可见的表格)
一年多以前就买了@Mrexcel的<让excel飞>这本书.整体思路是利用access结合excel,大幅度提高数据分析效率. 最近又拿出来看了看.第十五章,比高级筛选更“高级”,P241 ...
随机推荐
- 基于Jquery的文本提示控件 poshytip
Html中,如设置了title的属性,则当鼠标在该对象上面短暂的停留时,会显示预设的文本提示,但,这些效果只会短暂的显示,一会就会消失,又要重新把鼠标移出再移回来才被显示,样式也无法重写,实在是恼人之 ...
- 3305: Hero In Maze II (优先队列+bfs)
Description 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^.突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了, ...
- 深刻理解Linux进程间通信(IPC)
https://www.ibm.com/developerworks/cn/linux/l-ipc/ linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道(named pipe):管 ...
- web应用框架Django
一.安装Django 打开网址https://www.djangoproject.com/download/进行查看 二.创建项目 打开命令行,进入想要安置项目的目录 命令行输入:django-adm ...
- Linux Shell命令系列(4)
16. cat命令 “cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容. 17. cp 命令 “copy”就是复制.它会从一个地方复制一个文件 ...
- python学习二(文件与异常)
Python中使用open BIF与文件交互,与for语句结合使用,一次读取一行 读取文件sketch.txt,文件内容如下: Man: Ah! (taking out his wallet and ...
- Vue.extend动态注册子组件
写本篇文章之前其实也关注过vue中的一个关于加载动态组件is的API,最开始研究它只是用来实现一个tab切换的功能,使用起来也蛮不错的. is 预期:string | Object (组件的选项对象) ...
- mysql数据库忘记密码时如何修改(二)
第一步:找到mysql数据库的my.ini配置文件,在[mysqld]下面添加一行代码:skip-grant-tables 第二步:运行services.msc进入服务管理界面,重启mysql服务. ...
- node官方docker镜像运行bower 提示 permission denied 解决方法
在使用node官方docker镜像部署node应用时,应用需要npm的scripts中运行bower install 来安装前端包,但是用docker 构建时失败,提示 permission dein ...
- GITHUB中GIT BASH基础命令行
PS:转自https://www.cnblogs.com/WangXinPeng/p/8016293.html 1.常用命令行工具: ①cmd ②powershell ③git ba ...