在查询中使用别名
在 MySQL 中执行查询操作时,可以根据具体情况为获取的字段设置别名。
例如,通过设置别名来缩短字段的名称长度。
字段设置别名
SELECT 字段 1 [AS] 别名 1, 字段 2 [AS] 别名 2 [, …] FROM 表名
表设置别名
SELECT 表别名.字段 [, …] FROM 表名 [AS] 表别名
AS 用于为其前面的字段、表达式、函数等设置别名,也可省略 AS 使用空格代替。
例如,为 categoryid 设置别名 cid,可以使用“categoryid AS cid”或“category_id cid”。
为字段设置别名
mysql> SELECT categoryid cid, MAX(price) maxprice FROM sh_goods
-> GROUP BY cid HAVING cid = 3 OR cid = 6;
+-----+-----------+
| cid | max_price |
+-----+-----------+
| 3 | 15.00 |
| 6 | 1999.00 |
+-----+-----------+
1 row in set (0.00 sec)
为表设置别名
SELECT g.categoryid cid, MAX(g.price) maxprice FROM sh_goods g
GROUP BY cid HAVING cid = 3 OR cid = 6;
字段与表设置别名后,在排序和分组中可以使用原来的字段名等,也可以使用别名。
表的别名主要在多表查询中使用,具体会在后面章节讲解。
聚合函数
通过前面的学习可知,在对数据进行分组统计时,经常需要结合 MySQL 提供的聚合函数才能够统计出具有价值的数据。
例如,获取每种商品分类下的商品数量、最高价格的商品、最低价格的商品等。
为此,MySQL 中的聚合函数就可在查询数据时提供一些特殊的功能。
COUNT()、SUM()、AVG()、MAX()、MIN()和 GROUP_CONCAT()函数中可以在参数前添加 DISTINCT,表示对不重复的记录进行相关操作。
COUNT()的参数设置为“*”时,表示统计符合条件的所有记录(包含 NULL)。
单独使用聚合函数统计数据
mysql> SELECT MAX(price), MIN(price) FROM sh_goods;
+------------+------------+
| MIN(price) | MAX(price) |
+------------+------------+
| 5999.00 | 0.50 |
+------------+------------+
1 row in set (0.00 sec)
聚合函数与分组结合使用统计数据
mysql> SELECT category_id, MAX(price), MIN(price)
-> FROM shgoods GROUP BY categoryid HAVING COUNT(*) > 2;
+-------------+------------+------------+
| category_id | MAX(price) | MIN(price) |
+-------------+------------+------------+
| 3 | 15.00 | 0.50 |
+-------------+------------+------------+
1 row in set (0.00 sec)
版权声明: 本文为 InfoQ 作者【在即】的原创文章。
原文链接:【http://xie.infoq.cn/article/9e547be92bbf8e86749041c34】。文章转载请联系作者。
评论