程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL中使用表別名與字段別名的基本教程

MySQL中使用表別名與字段別名的基本教程

編輯:關於MYSQL數據庫

MySQL 表別名(Alias)
SQL 表別名
在 SQL 語句中,可以為表名稱及字段(列)名稱指定別名(Alias),別名是 SQL 標准語法,幾乎所有的數據庫系統都支持。通過關鍵字 AS 來指定。
表別名語法:

SELECT column FROM table AS table_alias

上述 SQL 執行後的效果,給人感覺是對 table_alias 表進行查詢,但實際上對單表做簡單的別名查詢通常是無意義的。一般是對一個表要當作多個表來操作,或者是對多個表進行操作時,才設置表別名。
表別名使用例子
下面是一個簡單的多表操作的例子:
article 文章表:

20151216165438787.png (648×102)

user 用戶表:

20151216165457306.png (644×105)

當查詢一篇文章的時候,一般會同時將對應的文章作者查詢出來,通常的 SQL 語句為:

SELECT article.title,article.content,user.username FROM article, user 
WHERE article.aid=1 AND article.uid=user.uid

設置表別名後:

SELECT a.title,a.content,u.username FROM article AS a, user AS u where a.aid=1 and a.uid=u.uid

上述兩條 SQL 語句查詢結果是一樣的:

20151216165514636.png (655×57)

可以看出,使用表別名查詢,可以使 SQL 變得簡潔而更易書寫和閱讀,尤其在 SQL 比較復雜的情況下。除了使用別名來簡化 SQL 外,有些時候例如一個表做自身關聯時,必須要使用別名來當作兩個表進行關聯操作。

MySQL 字段別名(列別名)
SQL 字段別名
同本文前文講述的表別名一樣,SQL(MySQL) 也支持對表的字段(列)設置別名。
字段別名語法:

SELECT column AS column_alias FROM table

字段別名使用例子
字段別名一個明顯的效果是可以自定義查詢數據返回的字段名。如下面的表數據:
user 用戶表:

20151216165531485.png (647×103)

在查詢的時候,對 username 字段使用別名:

SELECT username AS name,email FROM user

返回查詢結果如下:

20151216165550742.png (640×110)

當然如此簡單的定義字段的別名是沒有太大實際意義的,字段別名更多的意義是解決字段名的重復,如一個表字段被查詢兩次或更多次時:

SELECT username AS name,username,email FROM user

或者兩個及更多表進行查詢,有相同的返回字段時:
article 文章表:

20151216165606501.png (652×108)

user 用戶表:

20151216165636638.png (645×104)

上面兩個表都定義了 title 字段且都需要返回該字段數據時,就需要定義字段別名(至少定義一個):

SELECT a.title AS atitle,u.username,u.title AS utitle FROM article AS a, user AS u where a.uid=u.uid

返回查詢結果如下:

20151216165652332.png (650×108)

可以看出,當查詢返回的字段名稱相同時,可以通過定義別名來避免沖突,上面查詢的例子同時定義了字段別名與表別名。
提示
通常,定義字段別名的 AS 關鍵字可以省略,即下面兩句 SQL 效果一致:

SELECT username AS name FROM user
SELECT username name FROM user

但我們建議不要省略 AS 關鍵字。
別名(alias)是 SQL 的標准語法,幾乎所有的數據庫系統都支持。在處理一些復雜的查詢時,可以合理的定義表和字段別名來使 SQL 語句看起來更加精簡易讀,也避免查詢返回相同字段數據時的沖突。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved