当前位置: 首页 > news >正文

Mysql基础教程(15):别名

MySQL 别名

在本文中,我们讨论了 MySQL 中的列别名,表别名和派生表别名,以及使用别名来简化 SQL 和提高 SQL 的可读性

如果在一个 SQL 中涉及到多个表,我们需要使用 table_name.column_name 这样的方式来引用每个表的字段,这有时候会让 SQL 变的臃肿和难以阅读。而使用别名,则可以简化 SQL 和提高 SQL 的可读性。

列别名

很多时候,一个表的列名的可读性并不好而且难理解。而使用列别名,则可以自定义输出列的名称。

列别名语法

以下展示了列别名的使用方法:

SELECT column_name AS `alias`
FROM table_name;

列别名使用说明:

  • 【AS 】关键字后面跟的是列的别名 alias
  • 当别名 alias 中时,必须使用 【alias`。
  • AS 关键字是可选的。
  • 除了为字段指定别名,还可以为表达式指定别名。例如: SELECT NOW() Current Time FROM dual

列别名实例

在以下实例中,我们使用 Sakila 示例数据库中的 actor 表进行演示。

未指定别名查询数据

SELECTfirst_name,last_name,CONCAT(last_name, ', ', first_name)
FROMactor
LIMIT 5;

在这里插入图片描述

这样的列名可读性很差并很难理解。

指定别名查询数据

SELECT first_name '名字',
last_name '姓',
CONCAT(last_name, first_name) '全名'
FROM actor
LIMIT 5;

在这里插入图片描述
在本例中,我们为以下列指定了别名:

  • 指定 first_name 列的别名为 名字
  • 指定 last_name 列的别名为
  • 指定 CONCAT(last_name, ', ', first_name) 表达式的别名为 全名

从输出的结果来看,指定别名后,输出数据的可读性更高。因为大多数人不懂 CONCAT(first_name, ', ', last_name) 的具体含义。

表别名

除了为列指定别名,我们还可以为表指定别名,如下:

table_name AS alias

其中 AS 关键字是可选的,因此您可以省略它

SELECT *
FROM language
WHERE EXISTS(SELECT *FROM filmWHERE film.language_id = language.language_id);

上面的例子中,没有使用表别名,我们使用 film.language_id 和 language.language_id 分别引用 film 和 language 的 language_id 字段。

现在我们使用别名改造这个 SQL,如下:

SELECT *
FROM language l
WHERE EXISTS(SELECT *FROM film fWHERE f.language_id = l.language_id);

结论

  • 可以通过 AS 关键字指定别名,但是 【AS】 关键字是可选的。
  • 当别名中包含空格时,必须使用 【`】 将别名引起来。
  • 除了为字段指定别名,表达式也可以指定别名。
  • 当 SQL 中涉及多个表时,使用表别名很重要。

⬅ Mysql基础教程(14):UNION

http://www.lryc.cn/news/362380.html

相关文章:

  • SpringCloud 微服务中网关如何记录请求响应日志?
  • 【运维项目经历|028】Cobbler自动化部署平台构建项目
  • “物联网安全:万物互联背景下的隐私保护与数据安全策略“
  • LeetCode216组合总和3
  • 微软找腾讯接盘,Windows直接安装手机APP体验起飞了
  • 【Springcloud微服务】MybatisPlus下篇
  • i18n-demo
  • [Leetcode] 0-1背包和完全背包
  • 自定义类型:联合体和枚举
  • 【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5(下)
  • 详解51种企业应用架构模式
  • 【十年java搬砖路】Jumpserver docker版安装及配置Ldap登陆认证
  • C\C++内存管理(未完结)
  • 一个小时搞定JAVA面向对象(5)——抽象与接口
  • 图像关键特征描述方法-小目标
  • 【qt15】windeployqt 安装依赖
  • DETR论文重点
  • slf4j等多个jar包冲突绑定的排查方法使用IDEA的maven help解决
  • MySQL主从的延迟怎么解决呢?
  • 【一百】【算法分析与设计】N皇后问题常规解法+位运算解法
  • GPT-4:人工智能领域的新里程碑
  • mysql inset bug
  • oracle查看序列
  • flask-slqalchemy使用详解
  • Scala学习笔记8: 包
  • 分享一份糟糕透顶的简历,看看跟你写的一样不
  • VMware 三种网络模式
  • 红绿二分查找
  • C51单片机 串口打印printf重定向
  • PieCloudDB Database Flink Connector:让数据流动起来