今日份知识学习
今日份知识学习,依然是从一个问题出发,这个问题就是有没有一种方式可以替代OR,因为OR的增多,使得SQL比较复杂,如果有一种方法可以替代OR的话,那岂不是很好。
具体讲解
从这个问题而言,其实是有的,替代OR的一种方式,那就是使用UNION。
UNION关键字
UNION是将多个结果集进行拼接,比如下面这个SQL的写法。
select name, age from user_table where name = '张三' union select name, age from user_table where name = '张四';
上述SQL就可以将条件为张三,和条件为张四的数据查出来了,当然我们使用Or也是可以查出来的。
比如使用or的SQL如下:
select name, age from user_table where name = '张三' OR name = '张四';
使用Or也是可以查出来的,使用Union就是另一种方式。
UNION ALL
除了UNION之外,还有UNION ALL关键字需要介绍一下,从名称来看,就知道是UNION ALL是在UNION基础上增加的功能。
UNION ALL实际上是不再去重,UNION会将多个结果集去重之后合并,UNION ALL则不同,直接将多个结果集合并,并且不进行去重。
比如以下的SQL中:
select name from user_table where name = '张三' union select name from user_table where name = '张三';
上面的SQL输出的就只有张三一条记录。
那如果我们换成UNION ALL的话,如下代码所示:
select name from user_table where name = '张三' union all select name from user_table where name = '张三';
这样的话,我们就可以得到两条张三的结果记录。
总结
今天学了替换OR的另外一种方法,那就是UNION关键字,更深入了解一下UNION和UNION ALL两个关键字的使用,你是否学会了呢?
最近开始来学习Oracle数据库的一些知识,其中包含一些函数的使用,或者是特性的介绍讲解等,将会在系列文章内说到。
喜欢的可以关注一下专栏。