6. 基础查询与复杂类型

6.1 SELECT ... FROM ...

SELECT 决定输出列,FROM 指定数据来源,数据来源可以是表、视图或子查询。

SELECT *
FROM employees;
  • SELECT * 查询全部列,适合快速查看数据。
  • 表别名为表指定临时名称,在自连接或多表连接中必须使用。
  • 可以直接在 SELECT 中对列做算术运算。
SELECT
  e.employee_id,
  e.salary * 12 AS annual_salary
FROM employees e;

常见算术和位运算符包括:+-*/%&|^~

6.2 列别名

使用 表达式 AS 别名 为计算结果或复杂表达式指定有意义的名称:

SELECT salary * 12 AS annual_salary
FROM employees;

WHERE 子句不能直接使用同一层 SELECT 中定义的列别名,因为 SQL 的逻辑执行顺序是 FROM → WHERE → SELECT。需要按别名过滤时,可使用嵌套子查询;聚合后的别名也可在 HAVING 中按实际语法使用。

6.3 复杂数据类型访问

SELECT
  subordinates[0] AS first_subordinate,
  deductions['tax'] AS tax,
  address.city AS city
FROM employees;
  • ARRAY:通过下标访问,下标从 0 开始,例如 subordinates[0]
  • MAP:通过字符串键访问,例如 deductions['tax']
  • STRUCT:通过点号访问字段,例如 address.city