王老師分享了python套件bokeh、echarts、pyecharts能用Javascript將數據視覺化呈現
子查詢 (Subquery)
定義:子查詢是指位於另一個查詢敘述中的查詢敘述。子查詢可以用於查詢(SELECT)、新增(INSERT)、修改(UPDATE)或刪除(DELETE)敘述中,目的是為了簡化 SQL 語句的撰寫 。
用途:子查詢的主要目的是為了避免將一個查詢分成多個步驟執行。透過子查詢,可以將多個查詢邏輯合併成一個 SQL 敘述,從而提高效率並使程式碼更易於閱讀 。
SELECT Code, Population
FROM country
WHERE Population > ( SELECT Population
FROM country
WHERE Code = 'USA' )
子查詢的位置
子查詢通常用於提供 WHERE 或 HAVING 子句中的條件判斷資料 。
子查詢也可以出現在 SELECT 子句中,用於查詢特定的資料 。
此外,子查詢還可以用於 FROM 子句中,此時子查詢的回傳結果會被當作一個新的表格來使用 。
子查詢與比較運算子
在 WHERE 和 HAVING 子句中,子查詢可以與比較運算子(如:=, !=, <, <=, >, >=)搭配使用,以設定查詢的條件 。
注意事項:使用比較運算子時,要特別留意子查詢回傳的資料是否符合運算子的規定。例如,使用 “=” 運算子時,子查詢通常需要回傳單一一個值 。
子查詢在 SELECT 子句後不能指定一個以上的欄位 。
子查詢不能回傳超過一筆以上的記錄 。
若需要一次比較多筆資料,可以使用 IN 運算子,或者其否定形式 NOT IN 。
其他運算子
除了基本的比較運算子,子查詢還可搭配 ALL、ANY 或 SOME 運算子,以完成更複雜的查詢需求。ANY 和 SOME 的效果相同 。
ALL 運算子用於指定子查詢回傳的所有值都必須滿足條件。
ANY 或 SOME 運算子則只要求子查詢回傳的至少一個值滿足條件 。
多欄位子查詢
子查詢可以處理多個欄位的比較,從而允許基於多個條件進行查詢 。
子查詢在各種 SQL 語句中的應用
SELECT:子查詢可以用於 SELECT 子句中,以選取額外的資料 。
FROM:子查詢可以用於 FROM 子句中,將子查詢的結果作為一個臨時表格 。
INSERT:子查詢可以用於 INSERT 語句中,將子查詢的結果插入到表格中 。
UPDATE:子查詢可以用於 UPDATE 語句中,以子查詢的結果來更新表格中的資料 。
DELETE:子查詢可以用於 DELETE 語句中,根據子查詢的結果來刪除表格中的資料 。
關聯子查詢 (Correlated Subqueries)
關聯子查詢是一種特殊的子查詢,它的執行依賴於外層的查詢。也就是說,關聯子查詢會參考到外層查詢中的資料 。
在關聯子查詢中,可以使用 EXISTS 或 NOT EXISTS 運算子來檢查子查詢是否回傳任何資料,以決定條件是否成立 。
EXISTS 運算子只檢查子查詢是否回傳資料,而不關心子查詢實際選擇了哪些欄位,因此子查詢中的 SELECT 子句可以選擇 *、具體的欄位名稱,甚至是常數值 。
