使用表別名進行選擇

SELECT e.Fname, e.LName 
FROM Employees e

Employees 表在表名後直接給出別名 e。這有助於消除多個表具有相同欄位名稱的情況下的歧義,並且你需要具體說明要從哪個表返回資料。

SELECT e.Fname, e.LName, m.Fname AS ManagerFirstName 
FROM Employees e 
    JOIN Managers m ON e.ManagerId = m.Id

請注意,一旦定義了別名,就不能再使用規範表名。即

SELECT e.Fname, Employees.LName, m.Fname AS ManagerFirstName 
FROM Employees e 
JOIN Managers m ON e.ManagerId = m.Id

會丟擲錯誤。

值得注意的是,表別名 - 更正式的’範圍變數’ - 被引入到 SQL 語言中以解決由 INNER JOIN 引起的重複列問題。1992 年的 SQL 標準通過引入 NATURAL JOIN(在 mySQL,PostgreSQL 和 Oracle 中實現但在 SQL Server 中尚未實現)糾正了此早期的設計缺陷,其結果從未具有重複的列名。上面的例子很有趣,因為這些表連線在具有不同名稱的列(IdManagerId)上,但不應該在具有相同名稱的列(LNameFName)上連線,需要重新命名要執行的列加入之前

SELECT Fname, LName, ManagerFirstName 
FROM Employees
     NATURAL JOIN
     ( SELECT Id AS ManagerId, Fname AS ManagerFirstName
       FROM Managers ) m;

請注意,雖然必須為 dervied 表宣告別名/範圍變數(否則 SQL 將引發錯誤),但在查詢中實際使用它是沒有意義的。