SQL效率的几点心得

这几天一直在写SQL,有时候对比同样效果的SQL语句,可是查询所需要的时间有时候相差很多,下面总结遇到的几个点:

1、between   and

  在有些时候自己比较喜欢使用这个语句,因为可以通过把数据变成number型然后省去大于号小于号,比如比较常用的查询一个月的数据。

  

select * from table1 
where  to_number(to_char(createdate,'yyyymmdd')) between 20140901 and 20140930

--用于查询一个月的数据

  这样执行起来速度也还可以,但是比起下面的写法就有些差距了

1 select * from table1 
2 where  to_number(to_char(createdate,'yyyymmdd')) like '201409__'
3 
4 --用于查询一个月的数据

下面的写法,提升的查询效率至少是上面的两倍多

 

2、如果是number型数据的话就不要再用to_number()函数了,虽然浪费的效率不多,但是能省一点还是省一点的好

 

3、plsql中的null值

  通过几次查询,纠结了一个上午,才弄明白在plsql中当一个字段不等一个值的时候,这个值的外围是不包括null的,也就是说,这样的查询不会包含null值

 

4、善待left join ……on …… and

  虽然这样写也对,但是要注意这样的结果和把限制条件放在where后面之后的查询结果是有一定区别的

 

转载于:https://www.cnblogs.com/mozizhu/p/4029407.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值