好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MySQL Alias表别名、字段别名使用实例

摘要 :在本教程中,您将学习如何使用MySQL别名来提高查询的可读性。

MySQL支持两种别名,称为字段别名和表别名。下面我们详细分析一下表别名和字段别名的使用方法和实例。

 

MySQL 字段别名

有时候字段的名称不具备可读性,这样使得查询的输出很难理解,要给字段一个描述性名称,您可以使用字段别名。

以下语句说明如何使用字段别名:

 SELECT 
 [column_1 | expression] AS descriptive_name
FROM table_name; 

要给字段取一个别名,请使用AS关键字。如果别名包含空格,则必须使用单引号将别名引用,如:

 SELECT 
 [column_1 | expression] AS `descriptive name`
FROM table_name; 

其实, AS 关键字是可选的,可以在语句中省略它。注意,你也可以给表达式一个别名。

让我们看看示例数据库中的 employees 表

以下查询选择雇员的名字和姓氏,并组合它们以生成全名。该 CONCAT_WS 功能是用来连接姓和名。

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

结果如下:

列标题很难阅读。您可以为输出的标题分配列别名,以使其更易于阅读,如:

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

结果如下:

在MySQL中,可以使用别名来命名ORDER BY,GROUP BY和HAVING子句中的列。

以下sql语句在order by子句中使用别名进行排序:

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

结果如下:

以下语句选择总金额大于60000的订单并在 GROUP BY 和 HAVING 子句中使用别名。

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

结果如下:

请注意,您不能在WHERE子句中使用字段别名。原因是当MySQL计算 WHERE 子句时,可能尚未确定SELECT子句中指定的列的值。

 

MySQL 表别名

您可以使用 AS 关键字为表指定不同的名称。

 table_name AS table_alias 

表的别名称为表别名。与字段别名类似, AS 关键字是可选的,因此您可以省略它。

表别名经常使用在INNER JOIN,LEFT JOIN和子查询中。

让我们来看看 customers 和 orders 表。

两个表都有相同的字段名 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
ORDER BY
 total DESC; 

结果如下:

上面的查询从 customers 和 orders 表中选择客户名称和订单数量。 customers表的别名命名为c,orders表的别名命名为o,这样, 表 customers 和 orders 表中的字段可以通过表别名引用。

如果在上面的查询中不使用别名,则必须使用表名来引用它的列,这使得查询不具备可读性,如下所示:

 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别名(包括表别名和字段别名)。

查看更多关于MySQL Alias表别名、字段别名使用实例的详细内容...

  阅读:41次

上一篇

下一篇

第1节:MySQL AND运算符实例讲解    第2节:MySQL BETWEEN AND实例及边界值问题    第3节:MySQL DISTINCT去除及多字段实例讲解    第4节:MYSQL having实例及与where的区别    第5节:MySQL INNER JOIN多表连接及优化效率实例分析    第6节:MySQL group by having与聚合函数count sum使用实例讲解    第7节:MySQL LIKE通配符(%,_)及escape实例讲解    第8节:MySQL OR运算符使用实例优先级介绍    第9节:MySQL IN运算符实例讲解    第10节:MySQL LIMIT实例及取前N行数据    第11节:MySQL IS NULL判断值是否为NULL及优化详解    第12节:MySQL ORDER BY实例及性能优化分析    第13节:mysql order by如何实现自然排序    第14节:MySQL LEFT JOIN实例及优化分析    第15节:mysql 下载与安装    第16节:MySQL示例数据库下载    第17节:如何使用MySQL Workbench将样本数据库导入到MySQL数据库服务器    第18节:MySQL SELECT语句实例讲解    第19节:MySQL WHERE子句使用实例讲解    第20节:Mysql入门教程    第21节:MySQL Alias表别名、字段别名使用实例    第22节:MySQL自连接实例讲解