PostgreSQL 别名


你可以通过提供另一个名称来临时重命名表或列,这称为别名。表别名的使用意味着重命名特定 PostgreSQL 语句中的表,重命名是临时更改,数据库中的实际表名不会更改。

列别名用于为特定的 PostgreSQL 查询重命名表的列。

语法


表别名的基本语法如下:

SELECT column1, column2....
FROM table_name AS alias_name
WHERE [condition];

字段别名的基本语法如下:

SELECT column_name AS alias_name
FROM table_name
WHERE [condition];

例子


考虑以下两个表,(a) COMPANY 表如下:

testdb=# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

(b) 另一个是 DEPARTMENT 表如下:

 id | dept         | emp_id
----+--------------+--------
  1 | IT Billing   |      1
  2 | Engineering  |      2
  3 | Finance      |      7
  4 | Engineering  |      3
  5 | Finance      |      4
  6 | Engineering  |      5
  7 | Finance      |      6
(7 rows)

现在,以下是使用表别名这里我们分别使用 C 和 D 作为 COMPANY 和 DEPARTMENT 表的别名:

testdb=# SELECT C.ID, C.NAME, C.AGE, D.DEPT
    FROM COMPANY AS C, DEPARTMENT AS D
    WHERE  C.ID = D.EMP_ID;

上面给出的 PostgreSQL 语句将产生以下结果:

 id | name  | age |  dept
----+-------+-----+------------
  1 | Paul  |  32 | IT Billing
  2 | Allen |  25 | Engineering
  7 | James |  24 | Finance
  3 | Teddy |  23 | Engineering
  4 | Mark  |  25 | Finance
  5 | David |  27 | Engineering
  6 | Kim   |  22 | Finance
(7 rows)

让我们看一个使用列别名的例子,其中 COMPANY_ID 是 ID 列的别名,COMPANY_NAME 是 name 列的别名:

testdb=# SELECT C.ID AS COMPANY_ID, C.NAME AS COMPANY_NAME, C.AGE, D.DEPT
    FROM COMPANY AS C, DEPARTMENT AS D
    WHERE  C.ID = D.EMP_ID;

上面给出的 PostgreSQL 语句将产生以下结果:

 company_id | company_name | age | dept
------------+--------------+-----+------------
        1     | Paul         |  32 | IT Billing
        2     | Allen        |  25 | Engineering
        7     | James        |  24 | Finance
        3     | Teddy        |  23 | Engineering
        4     | Mark         |  25 | Finance
        5     | David        |  27 | Engineering
        6     | Kim          |  22 | Finance
(7 rows)