注意:时间差不明显是因为数据比较少,数据多的话更好验证
一、使用where字句代替having字句
1、select语句汇总,where字句过滤行
2、having字句是分组后才过滤
3、行被分组需要时间,降低分组的行数可以提高效率,所以使用where 字句代替havingz字句
验证
select JOB,max(sal) from emp
group by JOB
having JOB<>'CLERK';
select JOB,max(sal) from emp
where JOB<>'CLERK'
group by JOB ;
二、使用<=代替<
empno<7901与empno<=7900的区别
1、使用empno<7901会定位到7901,然后再去找比7901小的数据
2、使用empno<=7900d自己定位到7900
3、在查询数据量大,并且在循环语句中使用这2个比较操作符时,区别就很明显
验证
select * from emp where empno<7901;
select * from emp where empno<=7900;
---------------------
作者:单身贵族男
原文:https://blog.csdn.net/zhou920786312/article/details/72857428