SQL專欄sql
SQL數據庫基礎知識彙總數據庫
SQL數據庫高級知識彙總ide
經過使用 SQL,能夠爲表名稱或列名稱指定別名(Alias)。函數
別名的做用code
SQL 別名用於爲表或表中的列提供臨時名稱。 blog
SQL 別名一般用於使列名更具可讀性。 it
使用別名的場景table
在下列狀況下使用別名是有用的:
查詢涉及多個表 class
用於查詢函數基礎
須要把兩個或更多的列放在一塊兒
列的別名語法
SELECT column_name AS alias_name
FROM table_name;
表的別名語法
SELECT column_name(s)
FROM table_name AS alias_name;
示例數據庫
如下是"Customers" 表中的數據:
下面是選自 "Orders" 表的數據:
列的別名實例
如下SQL語句建立兩個別名,一個用於客戶ID列,另外一個用於姓名列:
實例
SELECT 客戶ID AS CustomerID, 姓名 AS Customer FROM Customers;
結果以下:
注:查詢出來的列名會以別名的形式顯示,再也不顯示原來的列名,可是物理表的列名仍是沒變,這樣在不影響表結構的前提下,能夠根據實際須要重命成本身想要的名稱。
如下SQL語句建立兩個別名,一個用於姓名列,一個用於城市列。
注:若是別名包含空格,則須要雙引號或方括號:
實例
SELECT 姓名 AS Customer, 城市 AS [City Name] FROM Customers;
結果以下:
如下SQL語句建立一個名爲「地址」的別名,它包含四列(姓名,省份,城市,地址和郵編):
SELECT 姓名, 省份 + 城市 + 地址 + ',郵編:' + 郵編 AS 地址 FROM Customers;
結果以下:
注:若是咱們不使用AS,上面的地址列就會顯示 (無列名)
注意:要使上面的SQL語句在MySQL中工做,請使用如下命令:
SELECT 姓名, CONCAT(地址, 省份, 城市, ',郵編:', 郵編 ) AS 地址 FROM Customers;
注:Mysql中的字符拼接須要使用CONCAT函數,不能直接使用+
表別名實例
如下SQL語句建立兩個列別名,一個用於姓名列,一個用於訂單日期列,同時建立兩個表列名,分別用於Customers表和Orders表
SELECT c.姓名 AS Customer, o.訂單日期 AS Orderdate FROM Customers AS c JOIN Orders AS o ON c.客戶ID=o.客戶ID
結果以下:
注:上面咱們分別對錶名和列名進行了重命名,須要注意的是ON和WHERE以及其餘涉及條件篩選的地方,不能使用重命名後的名稱,GROUP BY 也不行。此外在進行重命名時AS是能夠省略的。
批註
AS別名在多表進行關聯時能夠很好的處理表名相同的狀況,好比兩個表都存在姓名列,能夠將A表的姓名命名成A_NAME,B表的姓名命名成B_NAME,這樣在閱讀代碼時候能夠一目瞭然。此外AS通常只對查詢的列和表以及ORDER BY重命名後的別名纔有效,其餘地方仍是須要使用原始列名。