Navicat 部落格

使用 SQL 別名簡化查詢並自訂結果 2022 年 12 月 20 日,由 Robert Gravelle 撰寫

別名能夠在不影響基礎資料表或檢視的情況下臨時重新命名資料表或欄。作為部份以至全部關聯式資料庫管理系統都支援的 SQL 功能,別名是簡化查詢和/或自訂結果集中欄標題的好方法。在這篇文章中,我們將使用 Navicat Premium 16 來完成這兩項工作。

重新命名欄

許多資料庫設計員使用縮寫表示資料表的欄名稱以使其更簡短,例如:

  • emp_no 表示「Employee Number」
  • qty 表示「quantity」

對於查看查詢結果的人來說,欄名稱縮寫並不總是能夠一看就懂。若要解決這個問題,你可以使用欄別名,為結果集中的欄提供更具描述性的名稱。

欄別名的語法是:

column_name [AS] alias_name

請注意,AS 關鍵字是選擇性的。

你可以在別名中包含空格,方法是將它們括在單引號(或雙引號)中,如下所示:

column_name AS 'Alias Name'

以下是一個包含一些欄別名的範例查詢:

column_aliases (131K)

運算式使用別名

你可能已經注意到,如果查詢包含運算式,則整個運算式將用作欄標題。例如:

query_with_expression (110K)

為運算式指定欄別名會使其更清晰易明:

expression_alias (111K)

資料表別名

資料表別名的規則與欄別名相同,但它們的用途不同,因為資料表別名不會出現在查詢結果中。它的概念是使用較短的名稱將欄與其資料表產生關聯以縮短查詢的長度。

資料表別名的基本語法如下:

SELECT column1, column2....
FROM table_name [AS] alias_name
WHERE [condition];

與其資料表關聯的欄稱為限定欄名稱。當具有相同名稱的兩個欄出現在同一個 SELECT 陳述式中時,欄需要加以限定。事實上,我們在上面的欄別名範例中也看到限定欄名稱。以下的另一個查詢包含兩個 actor_id 欄,一個來自 actors 資料表,另一個來自 film_actor 資料表:

qualified_columns (48K)

儘管上述的查詢是有效的,但我們可以使用資料表別名來縮短它:

table_aliases (44K)

請注意,明確的欄(即只出現在一個資料表中的欄)不需要限定。

在使用現代化資料庫工具(如 Navicat)時,資料表別名有另一種很有用的用途。多虧了自動建議功能,輸入資料表別名時會出現建議項的下拉式清單。清單中會包含所有資料表欄:

autocomplete (49K)

這能大大加快查詢編寫的速度,是專業資料庫開發的重要一環。

總結

本文介紹了欄和資料表別名,以及 Navicat Premium 16 中的一些實際範例。

如果你有興趣了解更多關於 Navicat Premium 16 的資訊,你可以免費試用完整無限制版本 14 天!

Navicat 文章
頻道記錄
分享
部落格封存檔