MYSQL中AS(取别名)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 在做业务,在mybatis中手写sql中再多表查询去映射实体时,总会用到AS这个关键字。或者我们在数据库大量字段测试数据时,很多字段都有相同的前缀,或者有时候数据库设计者设计的字段令人晦涩难懂。这时候就可以用as关键字去取别名。或者再多表联查的时候,每个如果使用表名则会很繁琐。所以我们用取别名去解决以上问题。

@[TOC]

0 写在前面

在做业务,在mybatis中手写sql中再多表查询去映射实体时,总会用到AS这个关键字。
或者我们在数据库大量字段测试数据时,很多字段都有相同的前缀,或者有时候数据库设计者设计的字段令人晦涩难懂。这时候就可以用as关键字去取别名。
或者再多表联查的时候,每个如果使用表名则会很繁琐。
所以我们用取别名去解决以上问题。

1 格式

<表名> [AS] <别名>
<表名> [空格] <别名>

<字段名> [AS] <别名>
<字段名> [空格] <别名>
<表名> :数据库表名
<字段名>:为数据表中字段定义的名称。
<别名>:新的名称。

AS关键字可以省略,省略后需要将原始名和别名用空格隔开。

2 举例

sql准备:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for person
-- ----------------------------
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(11) NULL DEFAULT NULL,
  `date_birth` datetime NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;

-- ----------------------------
-- Records of person
-- ----------------------------
INSERT INTO `person` VALUES (1, '小明', '男', 21, '2001-02-02 12:29:30');
INSERT INTO `person` VALUES (2, '小红', '女', 20, '2002-01-01 00:00:00');
INSERT INTO `person` VALUES (3, '张三', '男', 22, '2002-01-01 00:00:01');
INSERT INTO `person` VALUES (4, '李四', '男', 30, '1992-07-10 12:00:00');

SET FOREIGN_KEY_CHECKS = 1;

2.1 设置表别名

这个是在多个表查询时,此处只单表举例。
表名AS别名

SELECT
    t1.id,
    t1.NAME,
    t1.sex,
    t1.age,
    t1.date_birth 
FROM
    person AS t1;

结果:
在这里插入图片描述

2.2 设置字段别名

字段 AS 别名
字段  [空格]  别名

sql:

SELECT
    t1.id,
    t1.NAME,
    t1.sex,
    t1.age,
    t1.date_birth 
FROM
    person AS t1;

结果:
在这里插入图片描述

3 写在末尾

注意:表别名只在执行查询时使用,并不在返回结果中显示。而字段定义别名之后,会返回给客户端显示,显示的字段为字段的别名。
不用故意使用AS,如果自己可以清晰就不用使用。
某些特定场景必须使用AS,很好理解取别名的使用,加油干。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
存储 缓存 NoSQL
C++如何使用LevelDB数据库
C++如何使用LevelDB数据库
572 0
|
监控 Python
【python】实现cpu/内存监控的功能(非常简单)
【python】实现cpu/内存监控的功能(非常简单)
|
存储 资源调度 JavaScript
在Vue 3项目中引入Pinia进行状态管理并持久化存储
在Vue 3项目中引入Pinia进行状态管理并持久化存储
755 0
|
JavaScript 测试技术 Linux
|
JSON Java 测试技术
jsonpath :从入门到精通
jsonpath :从入门到精通
|
安全 Linux 程序员
入职必会-开发环境搭建34-FinalShell下载和安装
在企业开发中,Linux服务器一般都是在远程的机房中,我们不可能坐在机房里面操作服务器上的Linux系统,所以在学习Linux之前我们需要远程连接Linux系统。工作中一般使用SSH协议远程连接Linux。
935 1
入职必会-开发环境搭建34-FinalShell下载和安装
|
XML Java 数据格式
Java一分钟之-JAXB:Java对象到XML绑定
【6月更文挑战第1天】Java Architecture for XML Binding (JAXB) 是Java平台标准,用于自动转换Java对象和XML。它通过注解实现声明式映射,简化XML处理。本文介绍了JAXB的基本使用、常见问题和最佳实践,包括对象到XML(Marshalling)和XML到对象(Unmarshalling)过程,并通过示例展示如何在Java类和XML之间进行转换。注意类型匹配、注解冲突和JAXB上下文创建等问题,以及如何优化性能和避免循环引用。
866 3
|
缓存 Java 数据库连接
从ORM到实践:Hibernate与JPA的详细指南
【6月更文挑战第25天】ORM技术如Hibernate和JPA简化了Java与数据库交互。Hibernate是流行的ORM框架,JPA是Java EE的规范,两者结合提供了高效的数据持久化方案。配置Hibernate涉及数据库连接和实体映射。通过注解定义实体类,如`@Entity`、`@Table`、`@Id`等。持久化操作通过Session接口完成,例如保存对象。缓存、加载策略(延迟加载 vs. 立即加载)和查询优化是提升性能的关键。理解这些概念有助于选择和优化ORM使用。
317 0
|
存储 自然语言处理 Java
Java中的字符型数据(char)
Java中的字符型数据(char)
1055 0