mysql中别名(列别名和表别名)
1.介绍
使用MySQL别名来提高查询的可读性。
MySQL支持两种别名,称为列别名和表别名。
有时,列的名称是一些表达式,使查询的输出很难理解。要给列一个描述性名称,可以使用列别名。
用法:
SELECT [column_1 | expression] [AS] descriptive_name #要给列添加别名,可以使用AS关键词后跟别名。FROM table_name;
如果别名包含空格,则必须引用:
SELECT [column_1 | expression] [AS] 'descriptive name' #因为AS关键字是可选的,可以在语句中省略它。FROM table_name;
2.列别名
查询选择员工的名字和姓氏,并将其组合起来生成全名。 CONCAT_WS函数用于连接名字和姓氏。
SELECT
CONCAT_WS(', ', lastName, firstname) [AS] 'Full name'
FROM
employees;
3.子句对列别名的使用
在MySQL中,可以使用ORDER BY,GROUP BY和HAVING子句中的列别名来引用该列。
以下查询使用ORDER BY子句中的列别名按字母顺序排列员工的全名:
SELECT
CONCAT_WS(' ', lastName, firstname) [as] 'Full name'
FROM
employees
ORDER BY
'Full name';
以下语句查询总金额大于60000的订单。它在GROUP BY和HAVING子句中使用列别名。
SELECT
orderNumber [as] 'Order no.',
SUM(priceEach * quantityOrdered) [as] total
FROM
orderdetails
GROUP BY
'Order no.'
HAVING
total > 60000;
注意:不能在WHERE子句中使用列别名。原因是当MySQL评估求值WHERE子句时,SELECT子句中指定的列的值可能尚未确定。
4.表的别名
可以使用别名为表添加不同的名称。使用AS关键字在表名称分配别名,如下查询语句语法:
table_name [AS] table_alias
两个表都具有相同的列名称:customerNumber。如果不使用表别名来指定是哪个表中的customerNumber列:
SELECT
customerName,
COUNT(o.orderNumber) [as] total #列别名
FROM
customers [as] c INNER JOIN orders [as] o #表别名ON c.customerNumber = o.customerNumber
GROUP BY
customerName
HAVING total >=5
ORDER BY total DESC;
mysql中别名(列别名和表别名)相关推荐
- MySQL中的列类型之字符串类型总结
关联博文: MySQL中数值类型(列类型)与显示宽度 MySQL中的列类型之字符串类型总结 在SQL中,将字符串类型分为了六类:char,varchar,text,blob,enum和set. 类型 ...
- mysql 不识别欧元符号_将欧元和美元符号插入MySQL中的列?
为此,将CASE语句与UPDATE命令一起使用.让我们首先创建一个表-mysql> create table DemoTable1874 ( Id int NOT NULL AUTO_INCRE ...
- mysql中下列关于创建_在 MySQL 中,下列关于创建数据库表的描述正确的是( )。_学小易找答案...
[单选题]在表中设置外键实现的是哪一类数据完整性( ) [单选题]以下为概念模型的是() [论述题]• 参照 < 中国图书馆分类法 > ,谈一下你对自己所学专业在整个科学知识领域中所在的位 ...
- mysql重命名数据表称方式_在MySQL中,使用()重命名数据表。_学小易找答案
[单选题]( )的上海文坛被称为"张爱玲年". [多选题]下列哪些是属于共集放大电路的特点?() [阅读理解]Passage Two Thailand is to ban smok ...
- 【转】MySQL中select * for update锁表的问题
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...
- mysql中递增列_如何使用JDBC在MySQL中创建带有自动递增列的表?
在创建表时,在某些情况下,我们需要自动生成/增加列的值(例如ID).各种数据库以不同的方式支持此功能. 在MySQL数据库中,您可以使用以下语法声明列自动递增.CREATE TABLE table_n ...
- 怎么在Mysql中添加列_mysql如何给表中添加列(字段)?
mysql给表中添加列的方法:1.使用"ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件];"在末尾添加列:2.使用"ALTER TABLE 表名 A ...
- mySql中使用命令行建表基本操作
一:打开命令行启动mysql服务 注意事项:应该使用管理员身份打开命令行键入命令"net start mysql"(鼠标右键使用管理员身份打开),否则会出现拒绝访问报错,如下: 成 ...
- mysql 日期滞后_如何滞后MySQL中的列?
要在MySQL中滞后一列,首先让我们创建一个表.创建表的查询如下-mysql> create table LagDemo -> ( -> UserId int, -> User ...
- mysql中生成列与JSON类型的索引
MySQL中支持生成列,生成列的值是根据列定义中包含的表达式计算的. 一个简单的例子来认识生成列! CREATE TABLE triangle( sidea DOUBLE, sideb DOUBLE, ...
最新文章
- 直播 | Python Web开发者的破局之道
- ftrace跟踪内核_ftrace、kpatch、systemtap的基本原理、联系和区别
- PHP实用小程序(四)
- [深度学习] 自然语言处理---Transformer 位置编码介绍
- 怎么看调用的接口_Hadoop RPC调用实例分析
- PHP5.5+Nginx1.9
- oracle 时间戳生成语句(秒级+毫秒级)
- 无穷级数求和7个公式_这些的公式是怎么得到的?
- FreeSWITCH实现在视频通话中某一方视频翻转
- 产品经理天马行空,表格组件应对自如
- matlab快速解方程,matlab如何解方程 matlab解方程 matlab如何解方程
- 解除360的系统压缩
- (8)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接3
- SaaSBase:什么是INFOR ERP?
- UI自动化测试是什么?什么项目适合做UI自动化测试
- Exception evaluating SpringEL expression: “#fields.hasErrors()“ (template
- 2022最新中高阶Android面试题总结,Android面试题库
- 阿里云忘记登录名或者密码怎么办?如何找回登录名和密码?
- 【算法入门到进阶】【学习目录】
- 蓝桥杯.第几个幸运数字(数学_因子)
热门文章
- Angular:error TS2717: Subsequent property declarations must have the same type. Property ‘contentRe
- javascript教程_JavaScript类教程
- Unity 平抛运动,已知终点和起点
- Visual Studio 输出窗口有乱码
- 哈夫曼树和哈弗曼编码
- FCFS调度算法与SJF调度算法(C语言实现)
- 呼叫中心系统音质问题分析
- 打印杨辉三角 (20 分)
- C罗老矣,我的程序人生还有多远
- python 字符串 strip()方法