关于sql中union和or的区别和联系
关于sql中union和or的区别和联系
关于sql中union和or的区别和联系
这是我第⼀次写博客,我也只是⼀个刚毕业的⼩⽩,不是什么技术⼤犇,很多见解和看法会不全⾯,欢迎指正,共同进步。前提说明
⽤的是sql server 2008 数据库;
系统win 10;
创建了两张结构⼀致的表 TEST_USER 和TEST_USER2:
CREATE TABLE [dbo].[TEST_USER](
[id] [int] NOT NULL,
[userName] NOT NULL,
[passWord] NOT NULL,
[age] [int] NOT NULL
)
综合概述
union:⽤于连接两个 select 语句,查询出的字段,必须相同;
union all:和 union 基本上⼀致,区别在于 union all 会重复显⽰两条 select 语句查询出的字段,⽽ union 不会。
select * st_user
union
select * st_user2
or:⽤于 where 后,意思是查询 age ⼤于30或者 age 不等于11的数据,只要符合其中⼀条判断,就返回;
select * st_user u where u.age > 30 or u.age <> 11
联系:
如果两个 select 查询的是同⼀张表的内容,并且判断的是同⼀个字段,那么 union 和 or 可以相互转换;
区别:
1. union ⽤于连接两个sql,所以可以查询返回列相同的 select 语句,所以表可以不是同⼀张,⽽ or 的对象只能是同⼀张表;
2. union 可以实现将判断不同字段的两个sql 联合查询,or 固然也可以实现,但是很容易让⼈绕进去,没有 union 那么通俗易懂。
总结
最后,说说第⼀次写博客的体会吧。
sql中union多表合并原本以为,我已经对这个理解⾮常透彻了,结果在写博客的过程中,才发现,⾃⼰还有很多很多的情况没有考虑完全,所以,这⼀篇是不完整的,等有空,我会花时间将其补全。
还有就是以前看别⼈写的,会吐槽写的少,⾃⼰写才发现,写这个是真的难,不仅得对这⼀块知识理解透彻,还得考虑⽅⽅⾯⾯,对⾃⼰的表达能⼒也是很⼤的考验,现在我特别能体会那些博主的苦~~~~~~~~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论