天天看點

where、having、group by、order by、limit的差別和使用順序where子句: having: 相同點:where和having都可以加條件差別:1.where在分組之前加條件,having在分組之後加條件.           2.where的效率要遠遠高于having. 分組本身消耗資源非常大.GROUP BY:ORDER BY:LIMITE:綜合運用時的使用順序:

where子句:

通過在SELECT語句的WHERE子句中指定條件進行查詢,WHERE子句必須緊跟在FROM子句之後。

如:從員工表裡查詢員工id為h0001的員工的工資

select 工資 from 工資表 where id='h0001';
           

having:

having一般與group by組合來使用,表示在得到分類彙總記錄的基礎之上,進一步篩選記錄。

如:從部門表裡查部門内員工薪水總和大于100000的部門的編号

select 部門編号,sum(薪水) from 部門表 group by 部門編号 having sum(薪水)>100000;
           

相同點:where和having都可以加條件

差別:1.where在分組之前加條件,having在分組之後加條件.

           2.where的效率要遠遠高于having. 分組本身消耗資源非常大.

GROUP BY:

當需要分組查詢時需要使用GROUP BY子句,例如查詢每個部門的工資和,這說明要使用部門來分組。

select 部門編号,sum(薪水) from 部門表 group by 部門編号;
           

ORDER BY:

order by 用來指定資料的排序方式。有升序和降序兩種。desc表示降序,asc為升序,預設為升序,asc可省略。

order by 要寫在where之後,limit之前。

select * from stu_info order by id asc;// 按照id升序排序,其中asc可省略。
select * from stu_info order by id desc; //按照id降序
           

LIMITE:

LIMIT用來限定查詢結果的起始行,以及總行數。

如:查詢10行記錄,起始行從3開始

select * from emp limit 3,10;
           

綜合運用時的使用順序:

有如下表中資料:

where、having、group by、order by、limit的差別和使用順序where子句: having: 相同點:where和having都可以加條件差別:1.where在分組之前加條件,having在分組之後加條件.           2.where的效率要遠遠高于having. 分組本身消耗資源非常大.GROUP BY:ORDER BY:LIMITE:綜合運用時的使用順序:

從employee表中查詢salary列的值>0且prize字段值>0的記錄,結果以id字段分組且降序排列,起始行從0開始,顯示5行:

select *  from employee where salary>0  group by id  having  prize>0  order by id desc limit 0,5 ;
           

結果:

where、having、group by、order by、limit的差別和使用順序where子句: having: 相同點:where和having都可以加條件差別:1.where在分組之前加條件,having在分組之後加條件.           2.where的效率要遠遠高于having. 分組本身消耗資源非常大.GROUP BY:ORDER BY:LIMITE:綜合運用時的使用順序:

查詢到的記錄條數小于5行,是以隻能顯示查詢到的總行數。

注意各個關鍵字使用時的位置和順序,where在分組之前加條件,having在分組之後加條件,where的效率要遠遠高于having, 分組本身消耗資源非常大。order by 要寫在where之後,limit之前。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

技術交流微信:intboy520

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>