MySQL如何为表和字段取别名详解

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

MySQL如何为表和字段取别名详解

Vincenyang   2022-11-08 我要评论

为表和字段取别名

阿文之前介绍过MySQL的分组查询、集合函数查询和嵌套子查询,在编写SQL语句时有的地方使用到AS关键字为查询结果中的某一列指定一个特定的名字。在内连接查询时,则对相同的表分别指定两个不同的名字,在这里可以为字段或者表取一个表名,起到区分、标识和简化的作用。

1.为表取别名

当表的名字很长或者执行一些特殊的查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名替代表原来的名称。

语法格式:

表名 AS 表别名

  • "表名"为数据库中存储的数据表的名称
  • "表别名"为查询时指定的表的新名称,AS关键字为可选参数

例子:

SELECT * FROM fruits AS OD WHERE OD.s_id = 103;

查询结果:

在这里fruits AS OD代码表示为fruits表取别名为OD,指定过滤条件直接使用OD代替fruits。

例子:

SELECT OG.s_id,OD.f_name, OG.s_name, OG.s_city FROM fruits AS OD INNER JOIN suppliers AS OG ON OD.s_id = OG.s_id; 

查询结果:

由结果看到,MySQL可以同时为多个表取别名,而且表别名可以放在不同的位置,如WHERE子句、SELECT列表、ON子句以及ORDER BY子句等。

自连接连接是一种特殊的内连接,在连接查询中的两个表都是同一个表,其查询语句如下

例子:

SELECT OD1.s_id, OD2.s_id, OD1.f_name, OD1.f_price, OD1.f_id FROM fruits AS OD1 INNER JOIN fruits AS OD2 ON OD1.s_id = OD2.s_id AND OD2.s_id = 103;

查询结果:

提示:

在为表取别名时,要保证不能与数据库中其他表的名称冲突。且不能为SQL语句的关键字。

2.为字段取别名

在上面的自连接例子中,可以看到查询出来的两个s_id,字段名分别为s_id和s_id(1),不容易区别到底是哪张表的字段,这时候就需要为字段取列别名。

确实,在有些情况下,显示的列的名称很长或者需要区分或者名称不够直观时,就需要为字段取列别名。

语法格式:

字段名 AS 列别名

  • "列名"为表中字段定义的名称
  • "列别名"为字段新的名称

例子

SELECT f_name AS fruit_name, s_id AS supplier_id, f_price AS fruit_price FROM fruits AS f1 WHERE f1.f_price < 5;

查询结果:

也可以为SELECT子句中的计算字段取别名。例如,对使用COUNT聚合函数或者CONCAT等系统函数执行的结果字段取别名。

例子(取别名前):

SELECT CONCAT(TRIM(s_name),"  (", TRIM(s_city),")") FROM suppliers ORDER BY s_name; 

查询结果:

例子(取别名后):

SELECT CONCAT(TRIM(s_name),"  (", TRIM(s_city),")") AS suppliers_title FROM suppliers ORDER BY s_name; 

查询结果:

可以看到比没有取别名的查询结果要更清晰更好理解了

提示:

表别名只在执行查询的时候使用,并不在返回结果中显示,而列别名定义之后,将返回给客户端显示,显示的结果字段为字段列的别名。

总结

  • 通过给数据表取别名,可以清楚的辨别表,特别在自连接查询时
  • 通过给字段取别名,可以清楚的辨别查询出来的数据,更清晰更好理解

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们