五、连接表
- 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 |
+-------------------+ - 请注意,不能在WHERE子句中使用列别名。原因是当MySQL评估求值
WHERE
子句时,SELECT
子句中指定的列的值可能尚未确定。 -
该表的别名称为表别名。像列别名一样,
AS
关键字是可选的,所以完全可以省略它。一般在包含INNER JOIN,LEFT JOIN,self 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 |