首頁 > 軟體

MySQL如何為表和欄位取別名詳解

2022-11-07 14:01:22

為表和欄位取別名

阿文之前介紹過MySQL的分組查詢、集合函數查詢和巢狀子查詢,在編寫SQL語句時有的地方使用到AS關鍵字為查詢結果中的某一列指定一個特定的名字。在內連線查詢時,則對相同的表分別指定兩個不同的名字,在這裡可以為欄位或者表取一個表名,起到區分、標識和簡化的作用。

1.為表取別名

當表的名字很長或者執行一些特殊的查詢時,為了方便操作或者需要多次使用相同的表時,可以為表指定別名,用這個別名替代表原來的名稱。

語法格式:

表名 AS 表別名

  • "表名"為資料庫中儲存的資料表的名稱
  • "表別名"為查詢時指定的表的新名稱,AS關鍵字為可選引數

例子:

SELECT * FROM fruits AS OD WHERE OD.s_id = 103;

查詢結果:

在這裡fruits AS OD程式碼錶示為fruits表取別名為OD,指定過濾條件直接使用OD代替fruits。

例子:

SELECT OG.s_id,OD.f_name, OG.s_name, OG.s_city FROM fruits AS OD INNER JOIN suppliers AS OG ON OD.s_id = OG.s_id; 

查詢結果:

由結果看到,MySQL可以同時為多個表取別名,而且表別名可以放在不同的位置,如WHERE子句、SELECT列表、ON子句以及ORDER BY子句等。

自連線連線是一種特殊的內連線,在連線查詢中的兩個表都是同一個表,其查詢語句如下

例子:

SELECT OD1.s_id, OD2.s_id, OD1.f_name, OD1.f_price, OD1.f_id FROM fruits AS OD1 INNER JOIN fruits AS OD2 ON OD1.s_id = OD2.s_id AND OD2.s_id = 103;

查詢結果:

提示:

在為表取別名時,要保證不能與資料庫中其他表的名稱衝突。且不能為SQL語句的關鍵字。

2.為欄位取別名

在上面的自連線例子中,可以看到查詢出來的兩個s_id,欄位名分別為s_id和s_id(1),不容易區別到底是哪張表的欄位,這時候就需要為欄位取列別名。

確實,在有些情況下,顯示的列的名稱很長或者需要區分或者名稱不夠直觀時,就需要為欄位取列別名。

語法格式:

欄位名 AS 列別名

  • "列名"為表中欄位定義的名稱
  • "列別名"為欄位新的名稱

例子

SELECT f_name AS fruit_name, s_id AS supplier_id, f_price AS fruit_price FROM fruits AS f1 WHERE f1.f_price < 5;

查詢結果:

也可以為SELECT子句中的計算欄位取別名。例如,對使用COUNT聚合函數或者CONCAT等系統函數執行的結果欄位取別名。

例子(取別名前):

SELECT CONCAT(TRIM(s_name),"  (", TRIM(s_city),")") FROM suppliers ORDER BY s_name; 

查詢結果:

例子(取別名後):

SELECT CONCAT(TRIM(s_name),"  (", TRIM(s_city),")") AS suppliers_title FROM suppliers ORDER BY s_name; 

查詢結果:

可以看到比沒有取別名的查詢結果要更清晰更好理解了

提示:

表別名只在執行查詢的時候使用,並不在返回結果中顯示,而列別名定義之後,將返回給使用者端顯示,顯示的結果欄位為欄位列的別名。

總結

  • 通過給資料表取別名,可以清楚的辨別表,特別在自連線查詢時
  • 通過給欄位取別名,可以清楚的辨別查詢出來的資料,更清晰更好理解

到此這篇關於MySQL如何為表和欄位取別名的文章就介紹到這了,更多相關MySQL表和欄位取別名內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com