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中别名(列别名和表别名)相关推荐

  1. MySQL中的列类型之字符串类型总结

    关联博文: MySQL中数值类型(列类型)与显示宽度 MySQL中的列类型之字符串类型总结 在SQL中,将字符串类型分为了六类:char,varchar,text,blob,enum和set. 类型 ...

  2. mysql 不识别欧元符号_将欧元和美元符号插入MySQL中的列?

    为此,将CASE语句与UPDATE命令一起使用.让我们首先创建一个表-mysql> create table DemoTable1874 ( Id int NOT NULL AUTO_INCRE ...

  3. mysql中下列关于创建_在 MySQL 中,下列关于创建数据库表的描述正确的是( )。_学小易找答案...

    [单选题]在表中设置外键实现的是哪一类数据完整性( ) [单选题]以下为概念模型的是() [论述题]• 参照 < 中国图书馆分类法 > ,谈一下你对自己所学专业在整个科学知识领域中所在的位 ...

  4. mysql重命名数据表称方式_在MySQL中,使用()重命名数据表。_学小易找答案

    [单选题]( )的上海文坛被称为"张爱玲年". [多选题]下列哪些是属于共集放大电路的特点?() [阅读理解]Passage Two Thailand is to ban smok ...

  5. 【转】MySQL中select * for update锁表的问题

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  6. mysql中递增列_如何使用JDBC在MySQL中创建带有自动递增列的表?

    在创建表时,在某些情况下,我们需要自动生成/增加列的值(例如ID).各种数据库以不同的方式支持此功能. 在MySQL数据库中,您可以使用以下语法声明列自动递增.CREATE TABLE table_n ...

  7. 怎么在Mysql中添加列_mysql如何给表中添加列(字段)?

    mysql给表中添加列的方法:1.使用"ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件];"在末尾添加列:2.使用"ALTER TABLE 表名 A ...

  8. mySql中使用命令行建表基本操作

    一:打开命令行启动mysql服务 注意事项:应该使用管理员身份打开命令行键入命令"net start mysql"(鼠标右键使用管理员身份打开),否则会出现拒绝访问报错,如下: 成 ...

  9. mysql 日期滞后_如何滞后MySQL中的列?

    要在MySQL中滞后一列,首先让我们创建一个表.创建表的查询如下-mysql> create table LagDemo -> ( -> UserId int, -> User ...

  10. mysql中生成列与JSON类型的索引

    MySQL中支持生成列,生成列的值是根据列定义中包含的表达式计算的. 一个简单的例子来认识生成列! CREATE TABLE triangle( sidea DOUBLE, sideb DOUBLE, ...

最新文章

  1. 直播 | Python Web开发者的破局之道
  2. ftrace跟踪内核_ftrace、kpatch、systemtap的基本原理、联系和区别
  3. PHP实用小程序(四)
  4. [深度学习] 自然语言处理---Transformer 位置编码介绍
  5. 怎么看调用的接口_Hadoop RPC调用实例分析
  6. PHP5.5+Nginx1.9
  7. oracle 时间戳生成语句(秒级+毫秒级)
  8. 无穷级数求和7个公式_这些的公式是怎么得到的?
  9. FreeSWITCH实现在视频通话中某一方视频翻转
  10. 产品经理天马行空,表格组件应对自如
  11. matlab快速解方程,matlab如何解方程 matlab解方程 matlab如何解方程
  12. 解除360的系统压缩
  13. (8)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接3
  14. SaaSBase:什么是INFOR ERP?
  15. UI自动化测试是什么?什么项目适合做UI自动化测试
  16. Exception evaluating SpringEL expression: “#fields.hasErrors()“ (template
  17. 2022最新中高阶Android面试题总结,Android面试题库
  18. 阿里云忘记登录名或者密码怎么办?如何找回登录名和密码?
  19. 【算法入门到进阶】【学习目录】
  20. 蓝桥杯.第几个幸运数字(数学_因子)

热门文章

  1. Angular:error TS2717: Subsequent property declarations must have the same type. Property ‘contentRe
  2. javascript教程_JavaScript类教程
  3. Unity 平抛运动,已知终点和起点
  4. Visual Studio 输出窗口有乱码
  5. 哈夫曼树和哈弗曼编码
  6. FCFS调度算法与SJF调度算法(C语言实现)
  7. 呼叫中心系统音质问题分析
  8. 打印杨辉三角 (20 分)
  9. C罗老矣,我的程序人生还有多远
  10. python 字符串 strip()方法