共計 828 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
本篇內容主要講解“SQL 中 where 和 having 有什么區別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“SQL 中 where 和 having 有什么區別”吧!
概念
where
where 是一個約束聲明,在查詢數據庫的結果返回之前對數據庫中的查詢條件進行約束,再返回結果前起作用,并且 where 后不能使用“聚合函數”。
聚合函數
對一組值執行計算,并返回單個值,也被稱為組函數,經常與 SELECT 語句的 GROUP BY 子句的 HAVING 一同使用。例如
AVG 返回指定組中的平均值 COUNT 返回指定組中項目的數量 MAX 返回指定數據的最大值。MIN 返回指定數據的最小值。SUM 返回指定數據的和,只能用于數字列,空值被忽略。
having
having 是一個過濾聲明,是在查詢數據庫結果返回之后進行過濾,即在結果返回值后起作用,與聚合函數共同使用。
區別
使用 group by 進行過濾,則只能使用 having。
執行順序:where 聚合函數 (sum,min,max,avg,count) having,故 where 不使用聚合函數。
舉個例子
職員表

1、成績大于 8 的有哪些?
使用 where

使用 having

報錯,因為 having 是對已過濾后的結果,進行篩選,但是篩選出沒有 employee_score 這個值,所以報錯,如果加上則可以查出。

故 where 和 having 很多時候不能隨意替代,主要是過濾對象不同。
2、每個部門年齡大于 20 的最高最低成績?

使用 where 也可以

但是需要注意執行順序

注意事項
在編寫 sql 語句時,要注意 where 和 group by 的執行順序,where 應在前執行,group by 在后,否則會報錯。
總結
到此,相信大家對“SQL 中 where 和 having 有什么區別”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
向 AI 問一下細節