当前位置: 首页 > news >正文

MySQL 保姆级教程(十五): 组合查询

第 17 章 组合查询

17.1 组合查询

MySQL 允许执行多个查询(多条 SELECT 语句),并将结果作为单个查询集返回

17.2 创建组合查询

可用 UNION 操作符来组合数条 SQL 查询

17.2.1 使用 UNION

输入: SELECT user.USER FROM user UNION SELECT global_grants.USER FROM global_grants;
输出:
+------------------+
| USER             |
+------------------+
| root             |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
+------------------+
分析: UNION 指示 MySQL 执行两条 SELECT 语句,并把输出组合成单个查询结果集

17.2.2 UNION 规则

1. UNION 必须由两条或两条以上的 SELECT 语句组成,语句之间用 UNION 分隔
2. UNION 中的每个查询必须包含相同的列、表达式或聚集函数(不管各个列不需要以相同的次序列出)
3. 列数据类型必须兼容:类型不必完全相同,但必须是 DBMS 可用隐含地转换的类型(例如,不同的数值类型或不同的日期类型)

17.2.3 包含或取消重复的行

输入: SELECT user.USER FROM user UNION ALL SELECT global_grants.USER FROM global_grants;
输出:
+------------------+
| USER             |
+------------------+
| root             |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| mysql.infoschema |
| mysql.session    |
| mysql.session    |
| mysql.session    |
| mysql.session    |
| mysql.session    |
| mysql.session    |
| mysql.session    |
| mysql.sys        |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
| root             |
+------------------+
分析: UNION 默认自动去除了重复的行,可使用 UNION ALL 返回所有匹配的行

17.2.4 对组合查询结果排序

输入: SELECT user.USER FROM user UNION SELECT global_grants.USER FROM global_grants ORDER BY USER;
输出:
+------------------+
| USER             |
+------------------+
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
分析: 在用 UNION 组合查询时,只能使用一条 ODER BY 子句,它必须出现在最后一条 SELECT 语句之后。但实际上 MySQL 将用它来排序所有 SELECT 语句返回的所有结果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言指针·高级用法超详解(指针运算、野指针、悬空指针、void类型指针、二级以及多级指针)
  • 文案人的梦工场,网易入职指南!
  • 白骑士的PyCharm教学高级篇 3.5 团队协作与集成开发
  • Datawhale AI 夏令营 从零入门 AI for Science(AI + 经济)
  • Odoo生产执行(MES)系统管理解决方案简介
  • cmake常用命令学习
  • 使用PXE和kickstart完成自动化批量主机的安装
  • C#中重写tospring方法
  • vector中 resize()和reserve()
  • 对比state和props的区别
  • Anaconda的一些常见命令
  • 卷积神经网络 - 卷积与池化作为一种无限强的先验篇
  • AI智能名片小程序在促销性内容营销中的创新应用与策略分析
  • 数据结构(8):排序
  • 强光照射对半导体材料在紫外线下稳定性的影响
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Git 使用集
  • idea + plantuml 画流程图
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • leetcode386. Lexicographical Numbers
  • leetcode388. Longest Absolute File Path
  • LintCode 31. partitionArray 数组划分
  • socket.io+express实现聊天室的思考(三)
  • Solarized Scheme
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 缓存与缓冲
  • 嵌入式文件系统
  • 数据可视化之 Sankey 桑基图的实现
  • 微信小程序设置上一页数据
  • 我与Jetbrains的这些年
  • 自定义函数
  • 走向全栈之MongoDB的使用
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • #if和#ifdef区别
  • #LLM入门|Prompt#3.3_存储_Memory
  • #Z2294. 打印树的直径
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (175)FPGA门控时钟技术
  • (20050108)又读《平凡的世界》
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十一)图像的罗伯特梯度锐化
  • (算法)前K大的和
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .form文件_SSM框架文件上传篇
  • .Net 6.0 处理跨域的方式
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET IoC 容器(三)Autofac