MySQL如何为表和字段取别名详解
作者:Vincenyang 发布时间:2024-01-14 11:35:02
为表和字段取别名
阿文之前介绍过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;
查询结果:
可以看到比没有取别名的查询结果要更清晰更好理解了
提示:
表别名只在执行查询的时候使用,并不在返回结果中显示,而列别名定义之后,将返回给客户端显示,显示的结果字段为字段列的别名。
总结
通过给数据表取别名,可以清楚的辨别表,特别在自连接查询时
通过给字段取别名,可以清楚的辨别查询出来的数据,更清晰更好理解
来源:https://juejin.cn/post/7157592783664971807


猜你喜欢
- 同事在准备新老系统的切换,清空一个表的时候往往发现这个表的主键被另一个表用做外键,而系统里有太多层次的引用.所以清起来相当麻烦用下面这个脚本
- Python 语言的优势在于其功能强大,可以用于网络数据采集、数据分析等各种应用场景。本篇文章将介绍如何使用 Python 获取网络数据、使
- css+div做的菜单:一个主显示层,别的列表都隐藏着,用js函数设置列表的显示和隐藏。分别用到了两个函数,函数实现的效果是一样的,一个是参
- 看下面的例子就明白了class Test(object): def __init__(self, value='hell
- 页面是这样的我尝试了很多次,都不响应。代码是这样的import xlrd###导入数据def read_data(workboo
- 条形图普通条形图ggplot(df,],aes(x=group,y=value))+geom_bar(stat = "identi
- 在Goland中,如果 import 了包,但在代码中没有使用,会自动帮你移除这个包的 引用有可能是习惯问题,每次写代码都习惯 先impor
- 英文文档:len(s)Return the length (the number of items) of an object. The a
- 本文实例为大家分享了python图片插入文字的具体代码,供大家参考,具体内容如下问题如何在图片中插入大量文字并且自动换行效果原始图效果图注明
- 2007年1月,国务院 * 了中央“一号文件”,文件中对加快农业信息化建设有了更明确的部署,为新农村建
- 在Python中要连接数据库,首先我们得先安装几个重要的东西,主要有: (1)Python-dev包 (2)setupt
- Django中上传文件方式。如何实现文件上传功能?1创建项目uploadfile:创建app:front项目设置INSTALLED_APPS
- 本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法。分享给大家供大家参考。具体分析如下:这段代码非常有用,可以找到指定
- 导语哈喽!boys and girls 我是每天疯狂赶代码的木木子~今天带大家来点儿好玩儿的东西,我想你们肯定是喜欢的!上面这个
- 一、正则表达式的作用提示:正则表达式是一段特殊的字符串,它表示的是一段有规律的信息。如果我们想从一段文字中提取想要的内容,就可以通过正则表达
- 前言最近在研究 pyecharts 的用法,它是 python 的一个可视化工具,然后就想着结合微信来一起玩不多说,直接看效果:
- 一、插件是什么?插件是遵循一定规范的应用程序接口编写出来的程序,而chrome插件则是运行在chrome浏览器上的小程序,能帮我们解决一下工
- 前言写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到 NGIN
- numpy.insert()主要用于向矩阵中插入行或列。对于多维矩阵,可以沿任意一个轴插入元素。1. 参数说明numpy.insert(ar
- 问题你需要在大数据集(比如数组或网格)上面执行计算。解决方案涉及到数组的重量级运算操作,可以使用NumPy库。NumPy的一个主要特征是它会