filter funnel showing data being filtered by criteria

資料庫 SQL 入門(02):用別名(Aliases)提高可讀性,用 WHERE 把資料準確篩出來

當查詢開始牽涉多張表運算欄位時,清楚的命名與乾淨的過濾條件就是可讀性的關鍵。

別名(Aliases)能把長欄位或表名改成短而有意義的名稱(例如 city AS cico.name AS country_name),而 WHERE 子句則用比較運算子=, !=/<> , <, >, <=, >=)搭配 AND / OR / NOT 將結果精準縮小。

本篇延續 COUNTRY / CITY 兩張表,示範如何用別名讓 JOIN 更直覺、用 WHERE 寫出語意清楚的過濾。

範例資料:國家表(COUNTRY)

idnamepopulationarea
1France66600000640680
2Germany80700000357000

這是我們將用於示範的國家資料表,包含國家的 ID、名稱、人口數量和面積資訊。

範例資料:城市表(CITY)

idnamecountry_idpopulationrating
1Paris122430005
2Berlin234600003

這是城市資料表,包含城市的 ID、名稱、所屬國家 ID、人口數量和評分資訊。我們將使用這兩個表來展示各種 SQL 查詢。

SQL code on computer screen with database visualization

使用別名(Aliases)

列別名

SELECT name AS city_name
FROM city;

將 name 列重命名為 city_name

表別名

SELECT co.name, ci.name
FROM city AS ci
JOIN country AS co
ON ci.country_id = co.id;

使用 ci 作為 city 表的別名,co 作為 country 表的別名

別名(Aliases)使查詢更易讀,特別是在處理多個表或複雜查詢時。使用 AS 關鍵字創建別名,但 AS 也可以省略。

filter funnel showing data being filtered by criteria

過濾輸出 – 比較運算符

大於比較

SELECT name
FROM city
WHERE rating > 3;

獲取評分高於 3 的城市名稱

不等於比較

SELECT name
FROM city
WHERE name != 'Berlin'
AND name != 'Madrid';

獲取既不是 Berlin 也不是 Madrid 的城市名稱

WHERE 子句用於過濾結果。您可以使用比較運算符(如 =, !=, <, >, <=, >=)並結合邏輯運算符(AND, OR, NOT)創建複雜的過濾條件。

總結

  • 別名最佳實踐
    • 欄位或表都可取別名;AS 可省略:FROM city ci JOIN country co ON ci.country_id = co.id
    • 需要空白或特殊字元的別名請加引號(依資料庫為 "[])。
  • WHERE 過濾心法
    • 比較運算子配合 AND/OR/NOT;有混用時加括號,避免預設優先序誤解(多數系統 AND 優先於 OR)。
    • NULL 不能用 = / !=:用 IS NULL / IS NOT NULL
    • ANSI 標準使用 <> 表示不等於;多數系統也支援 !=,但建議統一。
  • 實務與效能
    • 只選需要的欄位,避免長期使用 SELECT *

掌握別名讓結構清楚WHERE 讓集合精準的兩大技巧,你的查詢將更好讀、更好維護,也更容易跑得快。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

High Quality

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.

Fast Delivery

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.

Best Warranty

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.