SQL查询中AS关键字的作用是什么?与无AS的普通查询有何区别
AS关键字的作用
SQL里的AS关键字最核心的作用是给列/表设置自定义别名,你给出的示例中,就是给course表的ID字段设置了别名course_id,查询返回的结果集中,这一列的表头会从默认的ID替换为course_id。
两个查询的具体差异
这两段SQL最终返回的数据内容完全一致,区别只在查询结果的结构和书写逻辑:
SELECT c.ID AS course_id FROM course c;- 先给
course表设置了短别名c,后续引用表内字段时可以直接写c.字段名,不需要重复写全表名 - 给返回的
ID字段设置了自定义别名,结果集的列名为course_id
- 先给
SELECT ID FROM course;- 没有设置表别名,直接引用原表字段
- 结果集的列名和原表字段名完全一致,为
ID
给初学者的最佳实践建议
别名不是必须要写的语法,是否使用完全看场景:
- 推荐使用别名的场景:
- 多表关联查询:如果多张表存在同名字段(比如课程表有
ID、选课表也有ID),不加别名会导致数据库无法识别字段归属直接报错,给列加别名也能避免返回结果出现重复列名,方便后续处理 - 计算/聚合字段:使用
COUNT(*)、SUM(score)、字符串拼接等逻辑生成的字段,默认返回的列名可读性极差,用AS设置成有业务含义的别名,后续调用结果时不需要额外适配 - 业务层命名对齐:原表字段名和业务代码里的命名规范不一致时,用别名做映射不需要修改原表结构和上层代码逻辑
- 长表名简化:如果表名很长(比如
biz_education_course_record),设置短别名可以大幅简化SQL书写,降低出错概率
- 多表关联查询:如果多张表存在同名字段(比如课程表有
- 不需要使用别名的场景:
单表查询、返回的原字段名已经符合使用需求时,完全可以用更简洁的写法,两种写法没有任何性能差异,不用强行加别名增加冗余。
内容的提问来源于stack exchange,提问作者Mama africa
相关产品推荐
相关产品推荐

