首頁 >資料庫 >mysql教程 >MySQL查詢函數之 為表格和欄位取別名

MySQL查詢函數之 為表格和欄位取別名

coldplay.xixi
coldplay.xixi轉載
2021-03-18 09:46:543596瀏覽

MySQL查詢函數之 為表格和欄位取別名

目錄:

(1)為表格取別名
(2)為欄位取別名

(免費學習推薦:mysql影片教學


#(1)、為表取別名

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

表名 [as] 表别名

"表名"為資料庫中儲存的資料表的名稱,「表別名為查詢時指定的表的新名稱,as關鍵字為可選參數」

【例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表分別取別名,並進行連接查詢,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)

由結果可以看到,MySQL可以同時為多個表取別名,而且表別名可以放在不同的位置,如where子句、select列表、on子句以及order by子句等。

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

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)
(2)、為字段取別名

在使用select語句顯示查詢結果是,MySQL會顯示每個select後面指定的輸出列,有些情況下,顯示的列的名稱會很長或名稱不夠直觀,MySQL可以指定列別名,替換字段或表達式。為欄位取別名的基本語法格式為:

列名 [as] 列别名

"列名"為表中欄位定義的名稱,"列別名"為欄位新的名稱,as關鍵字為選用參數。

【例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函數連接這兩個欄位值,並取列別名為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)</p>
<p>由結果可以看到,顯示結果的列名稱為select子句後面的計算字段,實際上計算之後的列是沒有名字的,這樣的結果讓人很不容易理解,如果為欄位取一個別名,將會使結果更清晰,SQL語句如下:</p>
<pre class="brush:php;toolbar:false">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為計算欄位建立一個別名suppliers_title,顯示結果為指定的列別名,這樣就增強了查詢結果的可讀性。

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

相關免費學習推薦:mysql資料庫(影片)

#

以上是MySQL查詢函數之 為表格和欄位取別名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除