MySQL如何為表和字段取別名詳解
為表和字段取別名
阿文之前介紹過MySQL的分組查詢、集合函數(shù)查詢和嵌套子查詢,在編寫SQL語句時有的地方使用到AS關(guān)鍵字為查詢結(jié)果中的某一列指定一個特定的名字。在內(nèi)連接查詢時,則對相同的表分別指定兩個不同的名字,在這里可以為字段或者表取一個表名,起到區(qū)分、標(biāo)識和簡化的作用。
1.為表取別名
當(dāng)表的名字很長或者執(zhí)行一些特殊的查詢時,為了方便操作或者需要多次使用相同的表時,可以為表指定別名,用這個別名替代表原來的名稱。
語法格式:
表名 AS 表別名
"表名"
為數(shù)據(jù)庫中存儲的數(shù)據(jù)表的名稱"表別名"
為查詢時指定的表的新名稱,AS關(guān)鍵字為可選參數(shù)
例子:
SELECT * FROM fruits AS OD WHERE OD.s_id = 103;
查詢結(jié)果:
在這里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;
查詢結(jié)果:
由結(jié)果看到,MySQL可以同時為多個表取別名,而且表別名可以放在不同的位置,如WHERE子句、SELECT列表、ON子句以及ORDER BY子句等。
自連接連接是一種特殊的內(nèi)連接,在連接查詢中的兩個表都是同一個表,其查詢語句如下
例子:
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;
查詢結(jié)果:
提示:
在為表取別名時,要保證不能與數(shù)據(jù)庫中其他表的名稱沖突。且不能為SQL語句的關(guān)鍵字。
2.為字段取別名
在上面的自連接例子中,可以看到查詢出來的兩個s_id,字段名分別為s_id和s_id(1),不容易區(qū)別到底是哪張表的字段,這時候就需要為字段取列別名。
確實,在有些情況下,顯示的列的名稱很長或者需要區(qū)分或者名稱不夠直觀時,就需要為字段取列別名。
語法格式:
字段名 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;
查詢結(jié)果:
也可以為SELECT子句中的計算字段取別名。例如,對使用COUNT聚合函數(shù)或者CONCAT等系統(tǒng)函數(shù)執(zhí)行的結(jié)果字段取別名。
例子(取別名前):
SELECT CONCAT(TRIM(s_name)," (", TRIM(s_city),")") FROM suppliers ORDER BY s_name;
查詢結(jié)果:
例子(取別名后):
SELECT CONCAT(TRIM(s_name)," (", TRIM(s_city),")") AS suppliers_title FROM suppliers ORDER BY s_name;
查詢結(jié)果:
可以看到比沒有取別名的查詢結(jié)果要更清晰更好理解了
提示:
表別名只在執(zhí)行查詢的時候使用,并不在返回結(jié)果中顯示,而列別名定義之后,將返回給客戶端顯示,顯示的結(jié)果字段為字段列的別名。
總結(jié)
- 通過給數(shù)據(jù)表取別名,可以清楚的辨別表,特別在自連接查詢時
- 通過給字段取別名,可以清楚的辨別查詢出來的數(shù)據(jù),更清晰更好理解
到此這篇關(guān)于MySQL如何為表和字段取別名的文章就介紹到這了,更多相關(guān)MySQL表和字段取別名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
navicat 8 創(chuàng)建數(shù)據(jù)庫與創(chuàng)建用戶分配權(quán)限圖文方法
navicat是一款不錯的圖形化管理mysql的工具,大家一般都是用phpmyadmin或直接命令行操作,對于不是很熟悉命令的朋友,就可以使用navicat這個工具了,方便操作。2011-04-04mysql數(shù)據(jù)庫SQL子查詢(史上最詳細(xì))
這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫SQL子查詢的相關(guān)資料,子查詢指的是嵌套在某個語句中的SELECT語句, MySQL支持標(biāo)準(zhǔn)SQL所要求的所有子查詢形式和操作,此外還進行了一些擴展,需要的朋友可以參考下2024-05-05關(guān)于MySQL中“Insert into select“ 的死鎖情況分析
這篇文章主要介紹了關(guān)于MySQL中“Insert into select“ 的死鎖情況分析,死鎖是指兩個或者多個事務(wù)在同一資源上的相互占用,并請求鎖定對方占用的資源,從而導(dǎo)致惡性循環(huán)的現(xiàn)象,需要的朋友可以參考下2023-05-05Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報錯的解決方法
這篇文章主要介紹了Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報錯的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03MySQL實戰(zhàn)文章(非常全的基礎(chǔ)入門類教程)
半個月時間把MySQL重新鞏固了一遍,梳理了一篇幾萬字超硬核文章,想學(xué)習(xí)mysql的朋友可以看看2023-05-05