unoin all 和union 区别

sql 拼接

当sql 拼接 想到的自然是union all 和 union
注意
select a.name ,a.age ,a.description ,a.birthday from tb_user_info a
union all (union)
select b.companyname, b.comage,b.createtime from tb_company_des b
1. 要想union all (union)可以正常使用,程序不报错,必须保证每一个单体Sql 查询的 字段个数,以及字段的属性一致,否则就会出现单体运行正常,整体报错的局面

区别

相同点: 
 1.都是用来拼接sql的 ,语法要一致,即每个单体查询规格一致
 2.可以减少与数据库的 IO 次数
不同点:
 1.当数据没有重复的情况下,两者没有区别
 2.当数据有重复的情况下,union 具有虑重功能
 3.union 比union all 多了一步虑重,效率上union all 更快 (酌情使用)

场景

1. 循环查询 : 比如构造连续一周,或者一个月,即周期性查询模板构造
2. 批量查询:  相同单体,可以SQL 拼接(jdbcTemplate )
3. 雷同查询:  比如一个人有基本信息和企业信息
4. 视图查询:  多个视图的混合查询
5. 业务复杂的传统查询

猜你喜欢

转载自blog.csdn.net/WindwirdBird/article/details/104959907