第一点:能使用列名就不要使用*,因为*转换成列名需要时间。
第二点:当使用and和or等,Oracle判断的顺序是从右往左,因此如果使用and时,将大概率为假的条件放在右边,当使用or时,将大概率为真的条件放在右边。
第三点:尽量使用多表查询,多表查询好于子查询,因为使用子查询时会对数据库访问多次,而多表查询只会访问一次。而且子查询最终在执行的时候会转换成多表查询。例如下面的语句是一样的:
多表查询:
select e.*
from emp e,dept d
where e.deptno=d.deptno and d.dname='SALES'
子查询:
select *
from emp
where deptno=(select deptno from dept where dname='SALES');q
结果:
第四点:尽量不要使用集合运算,因为集合运算会对数据库操作多次。