中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中as怎么用

發布時間:2022-01-06 16:34:07 來源:億速云 閱讀:264 作者:iii 欄目:MySQL數據庫

本篇內容主要講解“mysql中as怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mysql中as怎么用”吧!

在mysql中,“as”關鍵字用于為數據表和字段指定別名,語法:1、“SELECT 字段名 AS 別名 FROM 數據表;”,可為字段指定別名;2、“SELECT 字段名 FROM 數據表 AS 別名;”,可為表指定別名。

mysql中as怎么用

本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。

為了查詢方便,MySQL 提供了 AS 關鍵字來為表和字段指定別名。本節主要講解如何為表和字段指定一個別名。

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

為字段指定別名

有時,列的名稱是一些表達式,使查詢的輸出很難理解。要給列一個描述性名稱,可以使用列別名。

以下語句說明了如何使用列別名:

SELECT 
 字段名 AS 別名
FROM 數據表;

要給字段添加別名,可以使用AS關鍵詞后跟別名。 如果別名包含空格,則必須引用以下內容:

SELECT 
 字段名 AS `別名`
FROM 數據表;

因為AS關鍵字是可選的,可以在語句中省略它。 請注意,還可以在表達式上使用別名。

我們來看看示例數據庫中的employees表,其表結構如下所示 -

mysql> desc employees;
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| employeeNumber | int(11)      | NO   | PRI | NULL    |       |
| lastName       | varchar(50)  | NO   |     | NULL    |       |
| firstName      | varchar(50)  | NO   |     | NULL    |       |
| extension      | varchar(10)  | NO   |     | NULL    |       |
| email          | varchar(100) | NO   |     | NULL    |       |
| officeCode     | varchar(10)  | NO   | MUL | NULL    |       |
| reportsTo      | int(11)      | YES  | MUL | NULL    |       |
| jobTitle       | varchar(50)  | NO   |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
8 rows in set

以下查詢選擇員工的名字和姓氏,并將其組合起來生成全名。 CONCAT_WS函數用于連接名字和姓氏。

SELECT 
    CONCAT_WS(', ', lastName, firstname)
FROM
    employees;

執行上面代碼,得到以下結果 -

mysql> SELECT 
    CONCAT_WS(', ', lastName, firstname)
FROM
    employees;
+--------------------------------------+
| CONCAT_WS(', ', lastName, firstname) |
+--------------------------------------+
| Murphy, Diane                        |
| Patterson, Mary                      |
| Firrelli, Jeff                       |
| Patterson, William                   |
| Bondur, Gerard                       |
| Bow, Anthony                         |
| Jennings, Leslie                     |
| Thompson, Leslie                     |
| Firrelli, Julie                      |
| Patterson, Steve                     |
| Tseng, Foon Yue                      |
| Vanauf, George                       |
| Bondur, Loui                         |
| Hernandez, Gerard                    |
| Castillo, Pamela                     |
| Bott, Larry                          |
| Jones, Barry                         |
| Fixter, Andy                         |
| Marsh, Peter                         |
| King, Tom                            |
| Nishi, Mami                          |
| Kato, Yoshimi                        |
| Gerard, Martin                       |
+--------------------------------------+
23 rows in set

在上面示例中,列標題很難閱讀理解。可以為輸出的標題分配一個有意義的列別名,以使其更可讀,如以下查詢:

SELECT
 CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
 employees;

執行上面代碼,得到以下結果 -

mysql> SELECT
 CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
 employees;
+--------------------+
| Full name          |
+--------------------+
| Murphy, Diane      |
| Patterson, Mary    |
| Firrelli, Jeff     |
... ...
| King, Tom          |
| Nishi, Mami        |
| Kato, Yoshimi      |
| Gerard, Martin     |
+--------------------+
23 rows in set

在MySQL中,可以使用ORDER BYGROUP BYHAVING子句中的列別名來引用該列。

以下查詢使用ORDER BY子句中的列別名按字母順序排列員工的全名:

SELECT
 CONCAT_WS(' ', lastName, firstname) `Full name`
FROM
 employees
ORDER BY
 `Full name`;

執行上面代碼,得到以下結果 -

mysql> SELECT
 CONCAT_WS(' ', lastName, firstname) `Full name`
FROM
 employees
ORDER BY
 `Full name`;
+-------------------+
| Full name         |
+-------------------+
| Bondur Gerard     |
| Bondur Loui       |
| Bott Larry        |
| Bow Anthony       |
| Castillo Pamela   |
| Firrelli Jeff     |
| Firrelli Julie    |
| Fixter Andy       |
| Gerard Martin     |
| Hernandez Gerard  |
| Jennings Leslie   |
| Jones Barry       |
| Kato Yoshimi      |
| King Tom          |
| Marsh Peter       |
| Murphy Diane      |
| Nishi Mami        |
| Patterson Mary    |
| Patterson Steve   |
| Patterson William |
| Thompson Leslie   |
| Tseng Foon Yue    |
| Vanauf George     |
+-------------------+
23 rows in set

以下語句查詢總金額大于60000的訂單。它在GROUP BYHAVING子句中使用列別名。

SELECT
 orderNumber `Order no.`,
 SUM(priceEach * quantityOrdered) total
FROM
 orderdetails
GROUP BY
 `Order no.`
HAVING
 total > 60000;

執行上面查詢語句,得到以下結果 -

mysql> SELECT
 orderNumber `Order no.`,
 SUM(priceEach * quantityOrdered) total
FROM
 orderdetails
GROUP BY
 `Order no.`
HAVING
 total > 60000;
+-----------+----------+
| Order no. | total    |
+-----------+----------+
|     10165 | 67392.85 |
|     10287 | 61402.00 |
|     10310 | 61234.67 |
+-----------+----------+
3 rows in set

請注意,不能在WHERE子句中使用列別名。原因是當MySQL評估求值WHERE子句時,SELECT子句中指定的列的值可能尚未確定。

為表指定別名

可以使用別名為表添加不同的名稱。使用AS關鍵字在表名稱分配別名,如下查詢語句語法:

SELECT 字段名 FROM 數據表 AS 別名;

該表的別名稱為表別名。像列別名一樣,AS關鍵字是可選的,所以完全可以省略它。

一般在包含INNER JOINLEFT JOINself join子句和子查詢的語句中使用表別名。

下面來看看客戶(customers)和訂單(orders)表,它們的ER圖如下所示 -

mysql中as怎么用

兩個表都具有相同的列名稱:customerNumber。如果不使用表別名來指定是哪個表中的customerNumber列,則執行查詢時將收到類似以下錯誤消息:

Error Code: 1052. Column 'customerNumber' in on clause is ambiguous

為避免此錯誤,應該使用表別名來限定customerNumber列:

SELECT
 customerName,
 COUNT(o.orderNumber) total
FROM
 customers c
INNER JOIN orders o ON c.customerNumber = o.customerNumber
GROUP BY
 customerName
HAVING total >=5
ORDER BY
 total DESC;

執行上面查詢語句,得到以下結果 -

mysql> SELECT
 customerName,
 COUNT(o.orderNumber) total
FROM
 customers c
INNER JOIN orders o ON c.customerNumber = o.customerNumber
GROUP BY
 customerName
HAVING total >=5
ORDER BY
 total DESC;
+------------------------------+-------+
| customerName                 | total |
+------------------------------+-------+
| Euro+ Shopping Channel       |    26 |
| Mini Gifts Distributors Ltd. |    17 |
| Reims Collectables           |     5 |
| Down Under Souveniers, Inc   |     5 |
| Danish Wholesale Imports     |     5 |
| Australian Collectors, Co.   |     5 |
| Dragon Souveniers, Ltd.      |     5 |
+------------------------------+-------+
7 rows in set

上面的查詢從客戶(customers)和訂單(orders)表中選擇客戶名稱和訂單數量。 它使用c作為customers表的表別名,o作為orders表的表別名。customersorders表中的列通過表別名(co)引用。

如果您不在上述查詢中使用別名,則必須使用表名稱來引用其列,這樣的會使得查詢冗長且可讀性較低,如下 -

SELECT
 customers.customerName,
 COUNT(orders.orderNumber) total
FROM
 customers
INNER JOIN orders ON customers.customerNumber = orders.customerNumber
GROUP BY
 customerName
ORDER BY
 total DESC

到此,相信大家對“mysql中as怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

揭东县| 裕民县| 肥东县| 公主岭市| 高邮市| 平原县| 霍邱县| 宁夏| 潞西市| 贡嘎县| 莆田市| 彭山县| 长垣县| 轮台县| 泽州县| 梅州市| 天柱县| 奎屯市| 怀仁县| 永嘉县| 金湖县| 淮安市| 舒兰市| 宁安市| 乡宁县| 涿州市| 双柏县| 上林县| 新野县| 安徽省| 迭部县| 开远市| 余干县| 苏尼特左旗| 嵩明县| 南召县| 河北省| 麻江县| 乌兰浩特市| 剑阁县| 新民市|