SQL基础知识V2——AS别名

SQL专栏

SQL数据库基础知识汇总

SQL数据库高级知识汇总

通过使用 SQL,可以为表名称或列名称指定别名(Alias)。

别名的作用

  • SQL 别名用于为表或表中的列提供临时名称。

  • SQL 别名通常用于使列名更具可读性。

  • SQL 一个别名只存在于查询期间。

使用别名的场景

在下列情况下使用别名是有用的:
查询涉及多个表

  • 用于查询函数

  • 需要把两个或更多的列放在一起

  • 列名长或可读性差

列的别名语法
SELECT column_name AS alias_name

FROM table_name;

表的别名语法
SELECT column_name(s)

FROM table_name AS alias_name;

示例数据库
以下是"Customers" 表中的数据:

SQL基础知识V2——AS别名

下面是选自 "Orders" 表的数据:

SQL基础知识V2——AS别名

列的别名实例
以下SQL语句创建两个别名,一个用于客户ID列,另一个用于姓名列:

实例

SELECT 客户ID AS CustomerID,
姓名  AS Customer
FROM  Customers;

结果如下:

SQL基础知识V2——AS别名

:查询出来的列名会以别名的形式显示,不再显示原来的列名,但是物理表的列名还是没变,这样在不影响表结构的前提下,可以根据实际需要重命成自己想要的名称。

以下SQL语句创建两个别名,一个用于姓名列,一个用于城市列。

:如果别名包含空格,则需要双引号或方括号:

实例


SELECT 姓名 AS Customer,
城市 AS [City Name]
FROM Customers;

结果如下:

SQL基础知识V2——AS别名

以下SQL语句创建一个名为“地址”的别名,它包含四列(姓名,省份,城市,地址和邮编):

SELECT 姓名,
省份 +
城市 +
地址 + ',邮编:' +
邮编  AS 地址
FROM Customers;

结果如下:

注:如果我们不使用AS,上面的地址列就会显示 (无列名)

注意:要使上面的SQL语句在MySQL中工作,请使用以下命令:

SELECT 姓名,
CONCAT(地址,
省份,
城市,
',邮编:',
邮编
) AS 地址
FROM Customers;

注:Mysql中的字符拼接需要使用CONCAT函数,不能直接使用+

SQL基础知识V2——AS别名

表别名实例

以下SQL语句创建两个列别名,一个用于姓名列,一个用于订单日期列,同时创建两个表列名,分别用于Customers表和Orders表


SELECT
c.姓名 AS Customer,
o.订单日期 AS Orderdate
FROM Customers AS c
JOIN Orders AS o
ON c.客户ID=o.客户ID

结果如下:

SQL基础知识V2——AS别名

:上面我们分别对表名和列名进行了重命名,需要注意的是ON和WHERE以及其他涉及条件筛选的地方,不能使用重命名后的名称,GROUP BY 也不行。此外在进行重命名时AS是可以省略的。

批注

AS别名在多表进行关联时可以很好的处理表名相同的情况,比如两个表都存在姓名列,可以将A表的姓名命名成A_NAME,B表的姓名命名成B_NAME,这样在阅读代码时候可以一目了然。此外AS一般只对查询的列和表以及ORDER BY重命名后的别名才有效,其他地方还是需要使用原始列名。

猜你喜欢

转载自blog.51cto.com/15057820/2655169