mysql中別名(列別名和表別名)


1.介紹

使用MySQL別名來提高查詢的可讀性。
MySQL支持兩種別名,稱為列別名和表別名

有時,列的名稱是一些表達式,使查詢的輸出很難理解。要給列一個描述性名稱,可以使用列別名。
用法:

  SELECT
   [column_1 | expression] [AS] descriptive_name #要給列添加別名,可以使用AS關鍵詞后跟別名。
  FROM table_name;
  

如果別名包含空格,則必須引用:
  SELECT
   [column_1 | expression] [AS] 'descriptive name' #因為AS關鍵字是可選的,可以在語句中省略它。
  FROM table_name;
  

 

2.列別名
查詢選擇員工的名字和姓氏,並將其組合起來生成全名。 CONCAT_WS函數用於連接名字和姓氏。

SELECT
CONCAT_WS(', ', lastName, firstname) [AS] 'Full name'
FROM
employees;



3.子句對列別名的使用

在MySQL中,可以使用ORDER BY,GROUP BY和HAVING子句中的列別名來引用該列。

以下查詢使用ORDER BY子句中的列別名按字母順序排列員工的全名:

SELECT
CONCAT_WS(' ', lastName, firstname) [as] 'Full name'
FROM
employees
ORDER BY
'Full name';


以下語句查詢總金額大於60000的訂單。它在GROUP BY和HAVING子句中使用列別名。

SELECT
orderNumber [as] 'Order no.',
SUM(priceEach * quantityOrdered) [as] total
FROM
orderdetails
GROUP BY
'Order no.'
HAVING
total > 60000;

注意:不能在WHERE子句中使用列別名。原因是當MySQL評估求值WHERE子句時,SELECT子句中指定的列的值可能尚未確定。



5.表的別名

可以使用別名為表添加不同的名稱。使用AS關鍵字在表名稱分配別名,如下查詢語句語法:

table_name [AS] table_alias

兩個表都具有相同的列名稱:customerNumber。如果不使用表別名來指定是哪個表中的customerNumber列:

SELECT
customerName,
COUNT(o.orderNumber) [as] total #列別名
FROM
customers [as] c INNER JOIN orders [as] o #表別名

ON c.customerNumber = o.customerNumber
GROUP BY
customerName
HAVING total >=5
ORDER BY total DESC;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM