MySQL随笔2

五、连接表

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

    以下语句说明了如何使用列别名:

  • SELECT 
     [column_1 | expression] AS descriptive_name
    FROM table_name;

    要给列添加别名,可以使用AS关键词后跟别名。 如果别名包含空格,则必须引用以下内容:

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

    因为AS关键字是可选的,可以在语句中省略它。 请注意,还可以在表达式上使用别名。

  • 示例:
  • mysql> use jialedb;
    Database changed
    mysql>

    select concat(lastname,",",firstname) full_name from employees limit 5;
    +-------------------+
    | full_name |
    +-------------------+
    | Murphy,Diane |
    | Patterson,Mary |
    | Firrelli,Jeff |
    | Patterson,William |
    | Bondur,Gerard |
    +-------------------+

    在MySQL中,可以使用ORDER BYGROUP BYHAVING子句中的列别名来引用该列。

  • 请注意,不能在WHERE子句中使用列别名。原因是当MySQL评估求值WHERE子句时,SELECT子句中指定的列的值可能尚未确定。
  • 该表的别名称为表别名。像列别名一样,AS关键字是可选的,所以完全可以省略它。

    一般在包含INNER JOINLEFT JOINself join子句和子查询的语句中使用表别名。

    下面来看看客户(customers)和订单(orders)表,它们的ER图如下所示 -

  • select  customerName,count(o.ordernumber) total 
    from 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 |

猜你喜欢

转载自www.cnblogs.com/jialexu/p/9570522.html