列的别名

列的别名就是给列起一个其他名字,别名一般要求简短,见名知意

那么如何给列起别名?

紧跟列名,中间用空格分开

eg:

SELECT employ_id emp_id FROM employees;
  • 上面的这个示例中的employ_id就是原本的表名 , 中间使用了一个空格 , 后面的emp_id就是给原本的列起的别名
这里关于给列起别名我们又几点补充:
  1. 可以在列名和列别名之间加入关键字AS
  • AS(as) : 全称为:alias(英文含义为 : 别名)
  • AS可以省略(也就是可以有,也可以没有)
  • 注意: 实际编程中我们建议加上AS关键字
  1. 别名可以使用" "(双引号)括起来,以便于在别名中包含空格或者特殊字符,并且区分大小写
  • 不要使用’ ‘(单引号)括列的别名,因为在美国标准局(ANSI)中指定的SQL标准中规定列的别名要使用" "(双引号),而字符串变量和日期时间类型的变量需要使用一对’ '(单引号)表示
  • 注意: 我们在MySQL中,对于’ ‘(单引号)和" "(双引号)没有明显的区分,这个是MySQL自己的问题,在ANSI(美国标准局)对于SQL语言的规范中是区分’ ‘(单引号)和" "(双引号)的,只是在我们的MySQL中是不区分的,如果是在Oracle中我们的’ '(单引号)和" "(双引号)是严格区分的
  • 所以我们即使是在MySQL中也是建议去尽量的区分’ '(单引号)的使用和" "(双引号)的使用
  • eg:
SELECT department_id "部门id" FROM employees;
  • 这里我们就使用了" “(双引号)表示列的别名,但是这个时候我们加不加” “(双引号)其实都是对的,都不会出现问题,但是对于某些情况,如果我们对列的别名不加” “(双引号),那么就是错误的,那么有哪些情况不加” "(双引号)表示列的别名就是错误的呐?
  • eg:
SELECT salary * 12 "annual sql" FROM employees;
  • 注意: 这里的列的别名中有空格,这个时候如果不加" "(双引号),那么就是SELECT salary * 12 annual sal FROM employees; ,这个时候系统就会认为annual是为salary列(字段)起的别名,但是这个时候我们发现后面还有一个空格,空格后面是一个sal,那么这个sal难道是为列起的第二个别名? 答案是不是的,我们的SQL中没有这种语法

总结:

对于列的别名 : 我们建议使用一对" "(双引号)括起来,并且中间加上AS关键字