通過(guò)使用 SQL,可以為表名稱或列名稱指定別名(Alias)。
SQL 別名(Aliases)
通過(guò)使用 SQL,可以為表名稱或列名稱指定別名(Alias)。
基本上,創(chuàng)建別名是為了讓列名稱的可讀性更強(qiáng)。
列的 SQL Alias 語(yǔ)法
FROM table_name;
表的 SQL Alias 語(yǔ)法
FROM table_name AS alias_name;
演示數(shù)據(jù)庫(kù)
在本教程中,我們將使用眾所周知的 Northwind 樣本數(shù)據(jù)庫(kù)。
下面是選自 "Customers" 表的數(shù)據(jù):
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
下面是選自 "Orders" 表的數(shù)據(jù):
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10643 | 1 | 6 | 1997-08-25 | 1 |
10644 | 88 | 3 | 1997-08-25 | 2 |
10645 | 34 | 4 | 1997-08-26 | 1 |
列的 Alias 實(shí)例
下面的 SQL 語(yǔ)句指定了兩個(gè)別名,一個(gè)是 CustomerName 列的別名,一個(gè)是 ContactName 列的別名。提示:如果列名稱包含空格,要求使用雙引號(hào)或方括號(hào):
實(shí)例
FROM Customers;
在下面的 SQL 語(yǔ)句中,我們把四個(gè)列(Address、City、PostalCode 和 Country)結(jié)合在一起,并創(chuàng)建一個(gè)名為 "Address" 的別名:
實(shí)例
FROM Customers;
表的 Alias 實(shí)例
下面的 SQL 語(yǔ)句選取來(lái)自客戶 "Alfreds Futterkiste" 的所有訂單。我們使用 "Customers" 和 "Orders" 表,并分別為它們指定表別名 "c" 和 "o"(通過(guò)使用別名讓 SQL 更簡(jiǎn)短):
實(shí)例
FROM Customers AS c, Orders AS o
WHERE c.CustomerName='Alfreds Futterkiste';
不帶別名的相同的 SQL 語(yǔ)句:
實(shí)例
FROM Customers, Orders
WHERE Customers.CustomerName='Alfreds Futterkiste';
在下面的情況下,使用別名很有用:
- 在查詢中涉及超過(guò)一個(gè)表
- 在查詢中使用了函數(shù)
- 列名稱很長(zhǎng)或者可讀性差
- 需要把兩個(gè)列或者多個(gè)列結(jié)合在一起
語(yǔ)法:
表別名的基本語(yǔ)法如下:
SELECT column1, column2....
FROM table_name AS alias_name
WHERE [condition];
列別名的基本語(yǔ)法如下:
SELECT column_name AS alias_name
FROM table_name
WHERE [condition];
示例:
考慮下面兩個(gè)數(shù)據(jù)表,(a)CUSTOMERS 表,如下:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
(b)另一個(gè)是 ORDERS 表,如下所示:
+-----+---------------------+-------------+--------+
|OID | DATE | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 3000 |
| 100 | 2009-10-08 00:00:00 | 3 | 1500 |
| 101 | 2009-11-20 00:00:00 | 2 | 1560 |
| 103 | 2008-05-20 00:00:00 | 4 | 2060 |
+-----+---------------------+-------------+--------+
下面是表別名的用法:
SQL> SELECT C.ID, C.NAME, C.AGE, O.AMOUNT
FROM CUSTOMERS AS C, ORDERS AS O
WHERE C.ID = O.CUSTOMER_ID;
上面語(yǔ)句的運(yùn)行結(jié)果如下所示:
+----+----------+-----+--------+
| ID | NAME | AGE | AMOUNT |
+----+----------+-----+--------+
| 3 | kaushik | 23 | 3000 |
| 3 | kaushik | 23 | 1500 |
| 2 | Khilan | 25 | 1560 |
| 4 | Chaitali | 25 | 2060 |
+----+----------+-----+--------+
下面是列別名的用法:
SQL> SELECT ID AS CUSTOMER_ID, NAME AS CUSTOMER_NAME
FROM CUSTOMERS
WHERE SALARY IS NOT NULL;
其運(yùn)行結(jié)果如下所示:
+-------------+---------------+
| CUSTOMER_ID | CUSTOMER_NAME |
+-------------+---------------+
| 1 | Ramesh |
| 2 | Khilan |
| 3 | kaushik |
| 4 | Chaitali |
| 5 | Hardik |
| 6 | Komal |
| 7 | Muffy |
+-------------+---------------+