PostgreSQL 别名学习笔记
什么是别名?
在 PostgreSQL 中,别名是指将一个列或者表名用另一个名称来表示的方式。有时候,我们需要把列或者表名改名,这时候就可以使用别名。
别名的语法
-
表别名:
Copy CodeSELECT column_name(s) FROM table_name AS alias_name;
-
列别名:
Copy CodeSELECT column_name AS alias_name FROM table_name;
别名的应用
表别名的应用
可以使用表别名来使 SQL 查询语句更加简洁易读,例如:
Copy CodeSELECT e.first_name, e.last_name, d.department_name
FROM employees AS e
JOIN departments AS d ON e.department_id = d.department_id;
这里 employees
表使用了别名 e
,departments
表使用了别名 d
。查询结果将会返回所有员工的姓名和他们所在部门的名称。
列别名的应用
当我们查询多个表并且这些表中存在相同的列名时,可以使用列别名来避免歧义,例如:
Copy CodeSELECT e.first_name, e.last_name, d.department_name as "Department"
FROM employees AS e
JOIN departments AS d ON e.department_id = d.department_id;
这里,查询结果中的 department_name
列被修改为了 Department
。
别名实例
假设我们有以下两个表:
Copy CodeTable "public.employees"
Column | Type | Collation | Nullable | Default
---------+-----------------------+-----------+----------+---------
id | integer | | not null |
name | character varying(50) | | not null |
dept_id | integer | | |
Table "public.departments"
Column | Type | Collation | Nullable | Default
--------+-----------------------+-----------+----------+---------
id | integer | | not null |
name | character varying(50) | | not null |
我们可以使用以下 SQL 查询语句来查询每个员工的名字和所在部门的名称:
Copy CodeSELECT e.name AS "Employee Name", d.name AS "Department Name"
FROM employees AS e
JOIN departments AS d ON e.dept_id = d.id;
这里,我们将 employees
表的别名设置为 e
,departments
表的别名设置为 d
。同时,我们使用列别名来修改了 employees.name
列的别名为 Employee Name
,departments.name
列的别名为 Department Name
。
查询结果可能类似于下面这样:
Copy Code Employee Name | Department Name
---------------+-----------------
Alice | HR
Bob | IT
Carol | Sales
Dave | Marketing
Erika | Sales
Fiona | IT