MySQL必知必会:第十七章《组合查询》

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL必知必会:第十七章《组合查询》

弄清几个概念

1、什么是组合查询

组合查询就是将多个SQL的查询结果进行合并一起返回;

2、使用union关键字有什么要求

1)必须包含多条查询语句

2)查询语句中的列、表达式、聚集函数必须一致,不要求顺序一致;

3)查询语句中的列的数据类型必须兼容,可隐式转换;

3、union和union all的区别

union出来的结果是自动去重的,可能导致不走索引;

union all出来的结果匹配的是不去重的;

4、union的执行顺序是在哪个位置?

位置不定

5、union和order by如何联用

如果直接下列语句会报错:

select * from main where addr like '上海%' order by aaa desc
union
select * from main where addr like '北京%' order by aaa desc
error msg::Incorrect usage of union and order by
ps:Union在没有括号的情况下只能使用一个order by

改成如下:

select * from main where addr like '上海%' order by aaa desc
union
select * from main where addr like '北京%' order by aaa desc
ps:该sql的意思就是先union,然后对整个结果集进行order by。

无效写法:

(select * from main where addr like '上海%' order by aaa desc)
union
(select * from main where addr like '北京%' order by aaa desc)
ps:分别排序,在进行union,这样不报错,但是排序无效;

可以改成如下写法:

select * from 
(select * from main where addr like '上海%'  order by aaa desc) table1
union
select * from 
(select * from main where addr like '北京%'  order by aaa desc) table2

也就是说,order by要么和union同级使用,要么差两级,order by 要么和union同辈,要么是union的儿子的儿子;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL
Mysql基础第二十天,组合查询
Mysql基础第二十天,组合查询
43 0
Mysql基础第二十天,组合查询
|
关系型数据库 MySQL
mysql组合查询
mysql组合查询
92 1
|
SQL 关系型数据库 MySQL
【MySQL】不允许你不会使用组合查询
【MySQL】不允许你不会使用组合查询
77 0
|
移动开发 关系型数据库 MySQL
《MySQL数据操作与查询》- 维护学生信息、老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息
《MySQL数据操作与查询》- 维护学生信息、老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息
264 0
《MySQL数据操作与查询》- 维护学生信息、老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息
|
关系型数据库 MySQL 数据库管理
mysql 基本操作指南之组合查询及表操作
mysql 基本操作指南之组合查询及表操作
|
12天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
81 15
|
6天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
13天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
17天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
25天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据

推荐镜像

更多
下一篇
DataWorks