執行SQL select 語句的6 個步驟(分析 SQL 搜尋/尋找 語法 的執行 過程/步驟)
執行SQL select 語句的6 個步驟(分析 SQL 搜尋/尋找 語法 的執行 過程/步驟)
資料來源: https://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ==&mid=2247489859&idx=3&sn=c77658107bbe17d9bea0e73cfcead8e7&chksm=fe7a0a71c90d8367c7571cd726fb59367aa4af8d3a91f6d3229bb122d4cb65edd17fefdf770a&scene=126&sessionid=1593508469&key=2eaef6333c5ec5d2e3156980412f1c1fcc7f3028f6c9443189e98b3b1f267e6aba54942ef511455432b237d55f3f21373bce48b8128a822dd90638a38f329e0ff13cc3b566b103e368b3cd3843e0bc4f&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10+x64&version=62090523&lang=zh_TW&exportkey=Ag81OUO48GzHUsKlZqKDVVg%3D&pass_ticket=CpcLJtEE84xO2tR88gPLAG7sl60BcgheCEj1KIqhrbTEUJTHd5S%2FVlgT3D8kF9FF
https://towardsdatascience.com/the-6-steps-of-a-sql-select-statement-process-b3696a49a642
SQL 語法:
SELECT city.city_name AS "City" FROM citizen JOIN city ON citizen.city_id = city.city_id WHERE city.city_name != 'San Bruno' GROUP BY city.city_name HAVING COUNT(*) >= 2 ORDER BY city.city_name ASC LIMIT 2
★查詢處理步驟順序條列:
01.獲取數據(From, Join)
-執行From和Join子句
FROM citizen
JOIN city
-From和Join子句執行之後,處理器會根據On指定的條件從記錄集合中挑出符合條件的記錄:
ON citizen.city_id = city.city_id
02.記錄過濾(Where)
-拿到了記錄集合之後,開始執行Where子句。
使用指定的條件過濾記錄集合,如果計算結果不為true,就會從記錄集合中移除。
WHERE city.city_name != ‘San Bruno’
03.分組(Group by)
-執行Group by子句,對記錄集合分組,把city_name相同的放到一組。
GROUP BY city.city_name
04.組內記錄過濾(Having)
-Having子句在Group by之後執行,其中包含了一個邏輯斷言。
需要注意,其針對的是記錄組,而不是單獨的記錄。
HAVING COUNT(*) >= 2
05.返回表達式(Select)
-在這步中,需要計算出打印什麼,以及如何打印,例如包含一些函數的話(Distinct , Max , Sqrt , Date, Lower …),就需要執行。
在這個示例中,只需要打印出city_name這一列,以及別名”City”。
06.排序& 分頁(Order by & Limit / Offset)
-最後一步處理結果集的展示順序,還有限制結果集的數量。
這個示例中,記錄是按字母排序的,顯示的記錄數量最多為2 個。