MySQL - 別名



MySQL 別名

MySQL 別名用於為表或列分配一個臨時名稱,稱為別名

別名使用AS關鍵字建立,用於引用特定的表或列而無需更改其原始名稱。在處理具有相似名稱的表或列時,它們用於使查詢更易於閱讀。

列名別名

列名別名用於為表的列分配不同的名稱。

語法

列別名的基本語法如下所示:

SELECT column_name 
AS alias_name
FROM table_name;

示例

首先,讓我們使用以下查詢建立一個名為 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

現在,讓我們使用 INSERT INTO 語句將值插入到上面建立的表中,如下所示:

INSERT INTO CUSTOMERS VALUES 
(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, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

獲得的 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 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

示例

在以下查詢中,我們為 ID 列和 AGE 列建立了兩個別名:

SELECT ID AS CUST_ID, AGE 
AS CUST_AGE
FROM CUSTOMERS;

輸出

上述查詢的輸出如下所示:

CUST_ID CUST_AGE
1 32
2 25
3 23
4 25
5 27
6 22
7 24

示例

如果我們希望別名包含空格,我們可以使用雙引號,如下面的查詢所示:

SELECT ID AS "CUST ID", AGE 
AS "CUST AGE"
FROM CUSTOMERS;

輸出

執行給定查詢後,輸出將顯示如下:

CUST ID CUST AGE
1 32
2 25
3 23
4 25
5 27
6 22
7 24

示例

在下面的查詢中,我們建立了一個名為“INFORMATION”的別名,它組合了兩個列(AGE、ADDRESS):

SELECT ID, CONCAT(AGE, ', ', ADDRESS) 
AS INFORMATION
FROM CUSTOMERS;

輸出

當我們執行上述查詢時,輸出將如下所示:

ID INFORMATION
1 32, Ahmedabad
2 25, Delhi
3 23, Kota
4 25, Mumbai
5 27, Bhopal
6 22, Hyderabad
7 24, Indore

表名別名

表名別名用於為表分配不同的名稱。

語法

以下是表別名的語法:

SELECT column1, column2....
FROM table_name AS alias_name

示例

讓我們使用以下查詢建立另一個名為 ORDERS 的表:

CREATE TABLE ORDERS (
   OID INT NOT NULL,
   DATES DATETIME NOT NULL,
   CUSTOMER_ID INT NOT NULL,
   AMOUNT INT NOT NULL,
   PRIMARY KEY (OID)
 );

現在,讓我們使用 INSERT INTO 語句將值插入到上面建立的表中,如下所示:

INSERT INTO ORDERS VALUES 
(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);

獲得的 ORDERS 表如下所示:

OID DATES CUSTOMER_ID AMOUNT
100 2009-10-08 00:00:00 3 1500
101 2009-11-20 00:00:00 2 1560
102 2009-10-08 00:00:00 3 3000
103 2008-05-20 00:00:00 4 2060

在以下查詢中,CUSTOMERS 表被賦予別名“C”,ORDERS 表被賦予別名“O”:

SELECT C.ID, C.NAME, C.AGE, O.AMOUNT
FROM CUSTOMERS AS C, ORDERS AS O
WHERE  C.ID = O.CUSTOMER_ID;

輸出

這將產生以下結果:

ID NAME AGE AMOUNT
3 Kaushik 23 1500
2 Khilan 25 1560
3 Kaushik 23 3000
4 Chaitali 25 2060

自連線中的別名

MySQL 自連線用於將表連線到自身,就好像它是兩個獨立的表一樣。自連線中的別名用於在 SQL 語句中臨時重命名錶,以避免混淆。

語法

以下是使用別名執行自連線的語法:

SELECT column_name(s)
FROM my_table a, my_table b
ON a.join_column = b.join_column

示例

現在,讓我們使用自連線將 CUSTOMERS 表連線到自身,以根據客戶的收入在客戶之間建立關係。

這裡,我們使用列名和表名別名來建立一個更有意義的結果表。

SELECT a.ID, b.NAME 
AS EARNS_HIGHER, a.NAME 
AS EARNS_LESS, a.SALARY 
AS LOWER_SALARY
FROM CUSTOMERS a, CUSTOMERS b
WHERE a.SALARY < b.SALARY;

輸出

上述查詢的輸出如下所示:

ID EARNS_HIGHER EARNS_LESS LOWER_SALARY
2 Ramesh Khilan 1500.00
2 Kaushik Khilan 1500.00
6 Chaitali Komal 4500.00
3 Chaitali Kaushik 2000.00
2 Chaitali Khilan 1500.00
1 Chaitali Ramesh 2000.00
6 Hardik Komal 4500.00
4 Hardik Chaitali 6500.00
3 Hardik Kaushik 2000.00
2 Hardik Khilan 1500.00
1 Hardik Ramesh 2000.00
3 Komal Kaushik 2000.00
2 Komal Khilan 1500.00
1 Komal Ramesh 2000.00
6 Muffy Komal 4500.00
5 Muffy Hardik 8500.00
4 Muffy Chaitali 6500.00
3 Muffy Kaushik 2000.00
2 Muffy Khilan 1500.00
1 Muffy Ramesh 2000.00
廣告