久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中as怎么用

165次閱讀
沒有評論

共計 5215 個字符,預計需要花費 14 分鐘才能閱讀完成。

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

在 mysql 中,“as”關鍵字用于為數據表和字段指定別名,語法:1、“SELECT 字段名 AS 別名 FROM 數據表;”,可為字段指定別名;2、“SELECT 字段名 FROM 數據表 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)
 employees;

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

mysql  SELECT 
 CONCAT_WS(,  , lastName, firstname)
 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`
 employees;

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

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

在 MySQL 中,可以使用 ORDER BY,GROUP BY 和 HAVING 子句中的列別名來引用該列。

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

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

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

mysql  SELECT
 CONCAT_WS(  , lastName, firstname) `Full name`
 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 BY 和 HAVING 子句中使用列別名。

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

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

mysql  SELECT
 orderNumber `Order no.`,
 SUM(priceEach * quantityOrdered) total
 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 JOIN,LEFT JOIN,self join 子句和子查詢的語句中使用表別名。

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

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

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

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

SELECT
 customerName,
 COUNT(o.orderNumber) total
 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
 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 表的表別名。customers 和 orders 表中的列通過表別名 (c 和 o) 引用。

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

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

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

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計5215字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 八宿县| 霍山县| 抚顺市| 太原市| 陆良县| 敦煌市| 北辰区| 永清县| 改则县| 南江县| 德安县| 沙河市| 徐闻县| 资溪县| 金秀| 鹤庆县| 德兴市| 阿克| 鹤壁市| 五寨县| 桓台县| 梅州市| 普兰县| 凉山| 察隅县| 嵩明县| 岳普湖县| 伊春市| 德兴市| 崇仁县| 平陆县| 郓城县| 望江县| 大冶市| 资兴市| 奇台县| 射洪县| 濉溪县| 安国市| 两当县| 固镇县|