mysql union使用原则,MySQL中组合查询UNION和UNION ALL

本节主要讲述如何使用UNION和UNION ALL操作符将对条SELECT语句组合成一个结果集。

前提SQL:查询学生表中所有的记录

SELECT * FROM STUDENT;

562afc7ea34dfb3df89a6f96b4ba97b7.png

组合查询:

有两种基本情况,需要使用组合查询:

1、在单个查询中从不同的表返回类似结构的数据

2、对单个表执行多个查询,按单个查询返回数据

UNION的使用规则

1、UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔(因此,如果组合4条SELECT语句,将要使用3个UNION关键字)

2、UNION中的每个查询必须包含相同的列,表达式或聚集函数(不过各个列不需要以相同的次序列出)

3、列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型(例如,不同的数值类型或者不同的日期类型)

如果需要显示重复的行,可以使用UNION ALL 而不是UNION。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序

Union All:对两个结果集进行并集操作,包括重复行,不进行排序.

SELECT ID,NAME FROM STUDENT

UNION

SELECT ID,NAME FROM STUDENT;

c38bcbe6d5e5247bae3ecdcaf1cdac45.png

SELECT ID,NAME FROM STUDENT

UNION ALL

SELECT ID,NAME FROM STUDENT;

1580ad07f943a86f15035bccb04e5a78.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQLUNIONUNION ALL是用于将两个或多个结果集合并的操作符。 引用指出,UNION会对结果集进行排序,并确保返回的结果集不包含重复数据。而UNION ALL只是简单地将两个结果集合并后返回,不进行排序。从效率的角度来看,UNION ALL比UNION更快。因此,如果可以确定合并的结果集不包含重复数据且不需要排序,就应该使用UNION ALL。 引用提供了一个示例,显示了如何使用UNION ALL操作符将两个结果集合并在一起。 引用进一步解释了UNIONUNION ALL之间的区别。它指出,UNION会筛选掉重复的记录,返回的结果集不会包含重复的记录;而UNION ALL不会去除重复记录,直接连接并返回所有值。 因此,在MySQL,如果需要合并结果集并且不关心重复记录或者已经确保结果集不包含重复数据,可以使用UNION ALL操作符;如果需要合并结果集并且确保返回的结果集不包含重复数据,可以使用UNION操作符。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MySQL: unionunion all区别](https://blog.csdn.net/henuzwt123/article/details/117772430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [mysqlunionunion all](https://blog.csdn.net/t194978/article/details/123490979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值