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。