SQLite 别名

在 SQLite 中,别名(alias) 用于临时重命名表或列,便于查询时简化书写或避免冲突。别名分为 列别名表别名 两种。


1. 列别名(Column Alias)

用于给查询结果中的列起一个新名字。

语法:

SELECT 列名 AS 别名 FROM 表名;
-- 或(AS 可省略)
SELECT 列名 别名 FROM 表名;

示例:

SELECT name AS n, age + 1 AS next_year FROM users;

结果:

nnext_year
Alice26

注意:别名包含空格或特殊字符时需用双引号、单引号或方括号包围(取决于 SQLite 版本):

SELECT name AS "Full Name" FROM users;

2. 表别名(Table Alias)

用于给表起一个短名,特别是在多表联接(JOIN)时非常有用。

语法:

SELECT t.列名 FROM 表名 AS t;
-- 或
SELECT t.列名 FROM 表名 t;

示例(自连接):

SELECT a.name AS employee, b.name AS manager
FROM employees a
JOIN employees b ON a.manager_id = b.id;

3. 别名规则与注意事项

项目说明
大小写敏感别名默认不区分大小写(除非用引号包裹)
作用域仅在当前查询有效
不能用于 WHERE 子句的列别名因为 WHERE 在 SELECT 之前执行
错误:WHERE age + 1 > 30
正确:HAVING age + 1 > 30 或重复表达式
可用于 ORDER BY支持用别名排序:
ORDER BY next_year

4. 实际应用场景

-- 复杂计算结果重命名
SELECT 
    price * quantity AS total,
    total * 0.9 AS discounted
FROM orders;
-- 多表连接简化书写
SELECT c.name, o.order_date
FROM customers AS c
JOIN orders AS o ON c.id = o.customer_id;

总结:
列别名 → 美化输出、简化表达式
表别名 → 提高多表查询可读性

如需生成测试数据或练习 SQL,告诉我!

文章已创建 2326

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部