您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)MySQL查詢函數(shù)之為表和字段取別名的案例,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
當(dāng)表名字很長或者執(zhí)行一些特殊查詢時(shí),為了方便操作或者需要多次使用相同的表時(shí),可以為表指定別名,用這個(gè)別名代替原來的名稱。為表取別名的基本語法格式為:
表名 [as] 表別名
"表名"為數(shù)據(jù)庫中存儲的數(shù)據(jù)表的名稱,“表別名為查詢時(shí)指定的表的新名稱,as關(guān)鍵字為可選參數(shù)”
【例1】為orders表取別名o,查詢30001訂單的下單日期,SQL語句如下;
mysql> select * from orders as o -> where o.o_num = 30001;+-------+---------------------+-------+| o_num | o_date | c_id |+-------+---------------------+-------+| 30001 | 2008-09-01 00:00:00 | 10001 |+-------+---------------------+-------+1 row in set (0.00 sec)
【例2】為customers和orders表分別取別名,并進(jìn)行連接查詢,SQL語句如下:
mysql> select c.c_id,o.o_num -> from customers as c left join orders as o -> on c.c_id = o.c_id;+-------+-------+| c_id | o_num |+-------+-------+| 10001 | 30001 || 10003 | 30002 || 10004 | 30003 || 10001 | 30005 || 10002 | NULL |+-------+-------+5 rows in set (0.05 sec)
由結(jié)果可以看到,MySQL可以同時(shí)為多個(gè)表取別名,而且表別名可以放在不同的位置,如where子句、select列表、on子句以及order by子句等。
自連接是一種特殊的內(nèi)連接,在連接查詢中的兩個(gè)表都是同一個(gè)表,其查詢語句如下:
mysql> select f1.f_id,f1.f_name -> from fruits as f1,fruits as f2 -> where f1.s_id = f2.s_id and f2.f_id = 'a1';+------+------------+| f_id | f_name |+------+------------+| a1 | apple || b1 | blackberry || c0 | cherry |+------+------------+3 rows in set (0.00 sec)
在使用select語句顯示查詢結(jié)果是,MySQL會顯示每個(gè)select后面指定的輸出列,有些情況下,顯示的列的名稱會很長或者名稱不夠直觀,MySQL可以指定列別名,替換字段或者表達(dá)式。為字段取別名的基本語法格式為:
列名 [as] 列別名
"列名"為表中字段定義的名稱,"列別名"為字段新的名稱,as關(guān)鍵字為可選參數(shù)。
【例1】查詢fruits表,為f_name取別名fruit_name、f_price取別名fruit_price,再為fruits表取別名f1,查詢表中f_price<8的水果名稱,SQL語句如下:
mysql> select f1.f_name as fruits_name,f1.f_price as fruit_price -> from fruits as f1 -> where f1.f_price <8;+-------------+-------------+| fruits_name | fruit_price |+-------------+-------------+| lemon | 6.40 || apple | 5.20 || apricot | 2.20 || berry | 7.60 || xxxx | 3.60 || cherry | 3.20 || xbabay | 2.60 || grape | 5.30 || xbabay | 3.60 |+-------------+-------------+9 rows in set (0.00 sec)
【例2】查詢suppliers表中字段s_name和s_city,使用concat函數(shù)連接這兩個(gè)字段值,并取列別名為suppliers_title。
mysql> select concat(trim(s_name),'(',trim(s_city),')') -> from suppliers -> order by s_name;+-------------------------------------------+| concat(trim(s_name),'(',trim(s_city),')') |+-------------------------------------------+| ACME(Shanghai) || DK Inc(Zhengzhou) || FastFruit Inc.(Tianjin) || FNK Inc.(Zhongshan) || Good Set(Taiyuan) || Just Eat Ours(Beijing) || LT Supplies(Chongqing) |+-------------------------------------------+7 rows in set (0.00 sec)
由結(jié)果可以看到,顯示結(jié)果的列名稱為select子句后面的計(jì)算字段,實(shí)際上計(jì)算之后的列是沒有名字的,這樣的結(jié)果讓人很不容易理解,如果為字段取一個(gè)別名,將會使結(jié)果更清晰,SQL語句如下:
mysql> select concat(trim(s_name),'(',trim(s_city),')') -> as suppliers_title -> from suppliers -> order by s_name;+-------------------------+| suppliers_title |+-------------------------+| ACME(Shanghai) || DK Inc(Zhengzhou) || FastFruit Inc.(Tianjin) || FNK Inc.(Zhongshan) || Good Set(Taiyuan) || Just Eat Ours(Beijing) || LT Supplies(Chongqing) |+-------------------------+7 rows in set (0.00 sec)
可以看到,select增加了 as suppliers_title,它指示了MySQL為計(jì)算字段創(chuàng)建一個(gè)別名suppliers_title,顯示結(jié)果為指定的列別名,這樣就增強(qiáng)了查詢結(jié)果的可讀性。
注意:表別名只在執(zhí)行查詢的時(shí)候使用,并不在返回結(jié)果中顯示,而列別名定義之后,將返回給客戶端顯示,顯示的結(jié)果字段為字段列的別名。
關(guān)于“MySQL查詢函數(shù)之為表和字段取別名的案例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。