zoukankan      html  css  js  c++  java
  • 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后面之后的查询结果是有一定区别的

    天地何其大,人生何其短。 不困于一时,不困于一世。 且恒且坚,且苦且乐,且行且看。
  • 相关阅读:
    python-configparser模块,xml.etree模块
    Ubuntu16.04环境下Vim 配置 for HTML,CSS,JAVASCRIPT(1)
    Windows 命令行及Git操作
    Ubuntu16.04 无任务栏问题
    ubuntu16.04安装中文输入法
    本地Web服务器搭建
    爬虫(1)
    Python(四):数字连珠2
    python学习(四)五数连珠
    Openjudge 百练第4109题
  • 原文地址:https://www.cnblogs.com/mozizhu/p/4029407.html
Copyright © 2011-2022 走看看