@[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,很好理解取别名的使用,加油干。