【MySQL】2.3.2-MySQL如何给列(字段)起别名

本文介绍了MySQL中为列设置别名的三种方法:空格、AS关键字和双引号引用,强调了在有空格或特殊字符时使用双引号的必要性,并提醒在SQL规范中推荐使用双引号来定义列别名,以确保在不同数据库系统间的通用性。
摘要由CSDN通过智能技术生成


2.3.2 列的别名

有时候某些表的字段名称太长,在查询的时候不方便,因此MySQL支持给列起一个别名,可以给列的名字太长的列起一个简短的别名,来增强查询的便捷性。

列的别名命名有3种方式:字段名后空格+别名、字段名后加 AS 和字段名后以 "" 把别名引起来。

1.方式一:空格

例如,给 employees 表的 employee_id 字段起别名叫 emp_id ; 给last_name 字段起别名叫 lname ;给department_id 字段起别名 dept_id

SELECT employee_id emp_id, last_name lname, department_id dept_id
FROM employees;

查询结果集:

image-20220623105342138

2.方式二:AS

该关键字不是“作为,当做”的英语,而是英语 alias (别名) 的缩写。可以省略,省略后与方式一等价。

SELECT employee_id AS emp_id, last_name AS lname, department_id AS dept_id
FROM employees;

查询结果集:

image-20220623105342138

3.方式三:双引号 “”

这种方式是用来解决别名中带空格的情况,例如我想给 salary * 12 起个别名叫 annual sal ,如下代码所示:

SELECT salary * 12 annual sal
FROM employees;

查询结果:报错

image-20220623110908000

这是因为,MySQL把空格后的 annual 当成是别名了,而 sal 误以为是要查询到的字段。但显然 employees 中没有这个字段,因此查询结果就报错。

这种情况下,以双引号 "" 把别名引起来的方式就显示出优越性了。如下代码所示:

SELECT employee_id AS emp_id, last_name AS lname, department_id AS dept_id, salary * 12 "annual sal"
FROM employees;

查询结果:

image-20220623111217501

【总结】

  • 当给字段起的别名有空格、或者其他容易使MySQL产生歧义的别名,统统用方式三双引号的方式引起来。在MySQL规范中,尽量使用方式三给字段名起别名,且不要省略 AS
  • 注意:列的别名不要使用单引号 ''。因为在严格遵守SQL语法的数据库系统 (如Oracle) 中,使用单引号 '' 会报错。在MySQL中没有报错,是因为MySQL是一款没有严格遵循SQL语法规范的DBMS (Database Manage System) 。为了在不同DBMS上的通用性,统一严格按照SQL语法规范使用双引号"" 来起列的别名。
  • 12
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡皮巴拉不躺平

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值