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 ...
随机推荐
- java监听器原理理解与实现
监听器模型涉及以下三个对象,模型图如下: (1)事件:用户对组件的一个操作,称之为一个事件(2)事件源:发生事件的组件就是事件源(3)事件监听器(处理器):监听并负责处理事件的方法 执行顺序如下: 1 ...
- Jmeter4.0----正则表达式提取器(12)
1.说明 有时候需要将前一个请求返回的数据作为下一个请求的参数时,我们就需要正则表达式提取器.使用正则表达式提取器去提取我们想要的部分再传入后面的请求中. (之前看了一篇不错的博客,可以参考学习 ht ...
- C数据结构与算法-算法复杂度
算法复杂度分为时间复杂度T(n)和空间复杂度F(n) 时间复杂度:也就是执行算法程序所需的时间,与硬件的速度.编程语言的级别.编译器的优化.数据的规模.执行的频度有关,前三个有很大的不确定性,所以衡量 ...
- (转)Linux最常用指令及快捷键 Linux学习笔记
Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...
- 初学makefile
makefile 需要用到 常用命令.shell.正则表达式.gcc,比较综合. 今天写了一个做一个记录,以后系统总结一下. 目录结构:russia---------include.src.mian. ...
- less css用法思维导图
Less 是一个Css 预编译器,可以扩展Css语言,添加功能如允许变量(variables),混合(mixins),函数(functions) 和许多其他的技术,让你的Css更具维护性,主题性,扩展 ...
- sqlserver2008执行200M以上的大脚本文件,打开脚本总是报“未能完成操作,存储空间不足”
用sqlcmd命令行工具. 1.win7下快捷键:win+R 2.输入cmd,确定 3.输入命令:sqlcmd -S <数据库> -i C:\<数据文件>.sql 例:sql ...
- ifream页面弹出框遮盖层覆盖父页面
1.首先找到子页面上遮罩层的id, 2.然后再父页面编写个js方法 function shade() { $(".layui-layer-shade").height($(wind ...
- base、self标签
以新的窗口打开页面 self在自己的窗口打开
- ubuntu安装robo3t
直接在官网下载 解压文件(使用命令 tar -zxvf robo3t-1.2.1-linux-x86_64-3e50a65.tar.gz) 打开解压后的文件,进入bin文件,直接在终端运行 ./rob ...