zoukankan      html  css  js  c++  java
  • mysql中别名(列别名和表别名)

    1.介绍

    使用MySQL别名来提高查询的可读性。
    MySQL支持两种别名,称为列别名和表别名

    有时,列的名称是一些表达式,使查询的输出很难理解。要给列一个描述性名称,可以使用列别名。
    用法:

      SELECT
       [column_1 | expression] [AS] descriptive_name #要给列添加别名,可以使用AS关键词后跟别名。
      FROM table_name;
      

    如果别名包含空格,则必须引用:
      SELECT
       [column_1 | expression] [AS] 'descriptive name' #因为AS关键字是可选的,可以在语句中省略它。
      FROM table_name;
      

    2.列别名
    查询选择员工的名字和姓氏,并将其组合起来生成全名。 CONCAT_WS函数用于连接名字和姓氏。

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



    3.子句对列别名的使用

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

    以下查询使用ORDER BY子句中的列别名按字母顺序排列员工的全名:

    SELECT
    CONCAT_WS(' ', lastName, firstname) [as] 'Full name'
    FROM
    employees
    ORDER BY
    'Full name';


    以下语句查询总金额大于60000的订单。它在GROUP BY和HAVING子句中使用列别名。

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

    注意:不能在WHERE子句中使用列别名。原因是当MySQL评估求值WHERE子句时,SELECT子句中指定的列的值可能尚未确定。



    5.表的别名

    可以使用别名为表添加不同的名称。使用AS关键字在表名称分配别名,如下查询语句语法:

    table_name [AS] table_alias

    两个表都具有相同的列名称:customerNumber。如果不使用表别名来指定是哪个表中的customerNumber列:

    SELECT
    customerName,
    COUNT(o.orderNumber) [as] total #列别名
    FROM
    customers [as] c INNER JOIN orders [as] o #表别名

    ON c.customerNumber = o.customerNumber
    GROUP BY
    customerName
    HAVING total >=5
    ORDER BY total DESC;

  • 相关阅读:
    课堂作业02
    模仿JavaAppArguments.java示例,编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
    Feign使用Hystrix无效原因及解决方法
    解决Spring Boot 使用RedisTemplate 存储键值出现乱码 xacxedx00x05tx00
    consul怎么在windows下安装
    java运行jar命令提示没有主清单属性
    Maven parent.relativePath
    Maven的pom.xml文件结构之基本配置packaging和多模块聚合结构(微服务)
    redis开启远程访问
    kibana使用
  • 原文地址:https://www.cnblogs.com/wyzhou/p/9765889.html
Copyright © 2011-2022 走看看