MySQL数据库——组合查询
来源:互联网 发布:mac自带pages 编辑:程序博客网 时间:2024/06/10 15:34
这一次说下如何利用UNION操作符实现组合查询,即将多条SELECT语句组合成一个结果集。
我们目前每次使用数据库查询都是用单个SELECT来用的,但是MySQL也允许执行多个查询,就是说多个SELECT,但是是一个结果集。这样的组合查询称为并(union),也叫复合查询。
有两种情况,我们需要用到组合查询:
1.在单个查询中从不同的表返回类似结构的数据;
2.对单个表执行多个查询,按单个查询返回数据;
TIP: 组合查询和多个WHERE条件 。 我们可以发现,多数情况下,组合相同表的两个查询和多个WHERE子句条件的单SELECT查询功能类似。但是从性能上讲,我们可以实验一下,看看哪个更好。
part 1 创建组合查询
可用UNION操作符来组合多条SQL语句。
SELECT coder.name FROM coder UNION SELECT git.name FROM git;
可以看见,这条语句由前面两条SELECT语句组成,语句中用UNION关键字分隔。
UNION只是MySQL执行两条SELECT语句,并把输出组合成单个查询结果集。
part 2 组合查询的UNION的规则
1.UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔,所以说如果是4条SELECT语句,需要使用三个UNION关键字。
2.UNION中每个SELECT查询必须包含相同的列、表达式或聚集函数,不过各列不必以相同的顺序出现。
3.列数据类型必须兼容,就是说类型不必完全相同,但是必须是数据库可以隐含转换的类型。
part 3 包含或取消重复的行
不过说 我们只要改一下刚刚的例子就可以
SELECT coder.name FROM coder UNION ALL SELECT git.name FROM git;
在上面返回的结果集中,会发现他是包含重复name行地! 就是说,我们UNION查询在结果集中默认去除了重复的行,这是默认行为,但是如果需要我们可以改变他,我们可以用UNION ALL返回所有匹配的行。
part 4 对组合查询结果进行排序
我们还是看例子吧:
SELECT coder.name FROM coder UNION ALL SELECT git.name FROM git ORDER BY name;
在UNION组合查询中,只能使用一条ORDER BY子句,他必须出啊现在最后一条SELECT语句之后。 但是这个排序是作用于最终的结果集地,不存在排序一部分的问题,也不能使用多条 ORDER BY 子句。
- MySQL数据库——组合查询
- 数据库——组合查询核心代码理解
- 机房—组合查询
- MySQL基础(4)——子查询(嵌套查询)、联结表、组合查询
- 数据库组合查询
- 数据库之组合查询
- Mysql组合查询例子
- [MYSQL -17]组合查询
- MySQL组合查询
- 数据库查询优化——Mysql索引
- 数据库查询优化——Mysql索引
- MySQL数据库——查询表达式
- mysql数据库开始——查询
- mysql数据库开始——查询
- mysql数据库开始——查询
- mysql数据库开始——查询
- mysql数据库开始——查询
- mysql数据库开始——查询
- Java日期类加减转换
- 12-18笔记
- python使用struct进行二进制文件的读写
- C++动态调用dll库(例子)
- Font Awesome(十四)
- MySQL数据库——组合查询
- 最小割树 学习小记
- PHP更新数据库数据
- js--打卡--12.20 confirm消息框
- Font Awesome(十五)
- 剑指offer编程---二维数组的查找
- LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Latex 如何画出决策树示意图
- 转载: 德鲁克:管理自己