Mysql基础教程(15):别名

MySQL 别名

在本文中,我们讨论了 MySQL 中的列别名,表别名和派生表别名,以及使用别名来简化 SQL 和提高 SQL 的可读性

如果在一个 SQL 中涉及到多个表,我们需要使用 table_name.column_name 这样的方式来引用每个表的字段,这有时候会让 SQL 变的臃肿和难以阅读。而使用别名,则可以简化 SQL 和提高 SQL 的可读性。

列别名

很多时候,一个表的列名的可读性并不好而且难理解。而使用列别名,则可以自定义输出列的名称。

列别名语法

以下展示了列别名的使用方法:

SELECT column_name AS `alias`
FROM table_name;

列别名使用说明:

  • 【AS 】关键字后面跟的是列的别名 alias
  • 当别名 alias 中时,必须使用 【alias`。
  • AS 关键字是可选的。
  • 除了为字段指定别名,还可以为表达式指定别名。例如: SELECT NOW() Current Time FROM dual

列别名实例

在以下实例中,我们使用 Sakila 示例数据库中的 actor 表进行演示。

未指定别名查询数据

SELECT
		first_name,
		last_name,
		CONCAT(last_name, ', ', first_name)
FROM
		actor
LIMIT 5;

在这里插入图片描述

这样的列名可读性很差并很难理解。

指定别名查询数据

SELECT first_name '名字',
last_name '姓',
CONCAT(last_name, first_name) '全名'
FROM actor
LIMIT 5;

在这里插入图片描述
在本例中,我们为以下列指定了别名:

  • 指定 first_name 列的别名为 名字
  • 指定 last_name 列的别名为
  • 指定 CONCAT(last_name, ', ', first_name) 表达式的别名为 全名

从输出的结果来看,指定别名后,输出数据的可读性更高。因为大多数人不懂 CONCAT(first_name, ', ', last_name) 的具体含义。

表别名

除了为列指定别名,我们还可以为表指定别名,如下:

table_name AS alias

其中 AS 关键字是可选的,因此您可以省略它

SELECT *
FROM language
WHERE EXISTS(
    SELECT *
    FROM film
    WHERE film.language_id = language.language_id
  );

上面的例子中,没有使用表别名,我们使用 film.language_id 和 language.language_id 分别引用 film 和 language 的 language_id 字段。

现在我们使用别名改造这个 SQL,如下:

SELECT *
FROM language l
WHERE EXISTS(
    SELECT *
    FROM film f
    WHERE f.language_id = l.language_id
  );

结论

  • 可以通过 AS 关键字指定别名,但是 【AS】 关键字是可选的。
  • 当别名中包含空格时,必须使用 【`】 将别名引起来。
  • 除了为字段指定别名,表达式也可以指定别名。
  • 当 SQL 中涉及多个表时,使用表别名很重要。

⬅ Mysql基础教程(14):UNION

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁拾舞

你的鼓励将是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值