SQLite - ALIAS(别名)语法
SQLite - 使用别名
Section titled “SQLite - 使用别名”别名(Aliases)为特定查询中的表或列提供一个临时的替代名称。它们对于编写可读、可维护的 SQL 至关重要,尤其是在涉及连接(joins)或聚合函数(aggregate functions)的复杂查询中。
列别名用于使查询输出更具可读性,或为派生列(例如,来自函数或计算的列)命名。
SELECT column_name AS alias_nameFROM table_name;AS 关键字是可选的,但强烈建议使用它以提高清晰度。
使用我们的 EMPLOYEES 表,我们可以在结果集中为 first_name 和 last_name 列指定更具描述性的别名。
sqlite> SELECT first_name AS "First Name", last_name AS "Last Name", salary ...> FROM EMPLOYEES;这个查询将产生“First Name”和“Last Name”作为标题,而不是“first_name”和“last_name”。
表别名主要用于缩短长表名以提高简洁性,以及在连接多个表时区分它们。
SELECT ...FROM table_name AS alias_name[JOIN another_table AS another_alias ON ...];使用别名的现代 JOIN 示例
Section titled “使用别名的现代 JOIN 示例”让我们回顾一下 EMPLOYEES 和 DEPARTMENTS 表。我们希望列出每位员工的全名及其部门名称。这需要一个 JOIN(连接)操作。
-- 示例数据-- DEPARTMENTS(部门表):(1, '工程部'), (2, '财务部')-- EMPLOYEES(员工表):(1, 'Alice', ..., 1), (2, 'Bob', ..., 2)这是使用现代 JOIN 语法和表别名(e 代表 EMPLOYEES,d 代表 DEPARTMENTS)的查询,旨在提高简洁性和清晰度。
sqlite> SELECT ...> e.first_name, ...> e.last_name, ...> d.name AS department_name ...> FROM ...> EMPLOYEES AS e ...> JOIN ...> DEPARTMENTS AS d ON e.department_id = d.id;这比旧的基于逗号的连接语法清晰得多。ON 子句明确指出了连接条件。别名 e 和 d 使指定每个列来自哪个表变得容易。
结果如下:
first_name last_name department_name---------- ---------- ---------------Alice Smith EngineeringBob Johnson Finance- 使用
AS: 始终使用AS关键字来定义别名,以提高可读性。 - 保持一致性: 为您的别名选择一致的命名方案(例如,表名的首字母)。
- 用于自连接: 当表进行自连接(joining a table to itself)时,表别名是强制性的。
- 首选显式
JOIN: 始终使用现代的JOIN ... ON语法,而不是旧的FROM table1, table2 WHERE ...语法。前者歧义更少,且不易出错。