PostgreSQL 别名学习笔记

什么是别名?

在 PostgreSQL 中,别名是指将一个列或者表名用另一个名称来表示的方式。有时候,我们需要把列或者表名改名,这时候就可以使用别名。

别名的语法

  • 表别名:

    Copy Code
    SELECT column_name(s) FROM table_name AS alias_name;
  • 列别名:

    Copy Code
    SELECT column_name AS alias_name FROM table_name;

别名的应用

表别名的应用

可以使用表别名来使 SQL 查询语句更加简洁易读,例如:

Copy Code
SELECT 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 表使用了别名 edepartments 表使用了别名 d。查询结果将会返回所有员工的姓名和他们所在部门的名称。

列别名的应用

当我们查询多个表并且这些表中存在相同的列名时,可以使用列别名来避免歧义,例如:

Copy Code
SELECT 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 Code
Table "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 Code
SELECT 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 表的别名设置为 edepartments 表的别名设置为 d。同时,我们使用列别名来修改了 employees.name 列的别名为 Employee Namedepartments.name 列的别名为 Department Name

查询结果可能类似于下面这样:

Copy Code
Employee Name | Department Name ---------------+----------------- Alice | HR Bob | IT Carol | Sales Dave | Marketing Erika | Sales Fiona | IT