PostgreSQL Alias


PostgreSQL Alias

在本节中,我们将了解PostgreSQL Aliasing 和 PostgreSQL Table aliasing 的工作,它用于在特定命令中为表提供临时名称。

什么是 PostgreSQL Alias?

PostgreSQLAlias用于为特定语句中SELECT 命令的选择列表中的表或表达式提供短名称

PostgreSQL Alias的优点

PostgreSQL Alias的优点如下:

  • PostgreSQL Alias使列名或表名更易于理解。
  • 在查询中将使用多个表的情况下,这是首选。
  • 它提供了一个方便灵活的功能,使我们能够快速完成复杂的任务。
  • 当我们在语句中使用函数时,PostgreSQL Alias很有用。
  • 在 PostgreSQL Alias中,我们可以组合两个或多个列。
  • 当列名重要或不可读时,PostgreSQL Alias非常有用。

PostgreSQL Alias可以通过两种方式定义:

  • PostgreSQL table alias
  • PostgreSQL column alias

在本节中,我们将了解PostgreSQL 表Alias及其一些示例。

什么是 PostgreSQL 表Alias?

表Alias用于简化我们的命令,使其更容易阅读,或者当我们正在实施一个自联接,它列出了类似的表不止一次在FROM子句中。

表Alias作为表示表名的昵称,使表名更具可读性和更短。

它在命令的整个执行过程中暂时存在。当表名不是实时用户友好时,表Alias非常有用。

PostgreSQL 表Alias的语法

PostgreSQL 表Alias的语法如下:

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

或者

在下面的语法中,我们忽略AS关键字,因为它是可选的,并且表 _name被赋予Aliasalias_name

SELECT column_name  
FROM table_name alias_name;  
WHERE [condition];

在上述语法中,我们有以下参数:

参数 描述
table_name 表名称参数用来定义原来的名字,在这里我们要执行的Alias。
column_name 列名被用于为特定表定义列名。
alias_name Alias是用来描述的临时名称,这是考虑到该柱。
AS AS是被大多数开发而走样列名的可选关键字,但在执行表Alias时不使用。

PostgreSQL 表Alias示例

让我们看一些示例,以更好地理解 PostgreSQL 表Alias。

  • 在连接子句中执行表Alias

通常,我们使用 join 子句从一个或多个表中获取包含相似列名的记录。

如果我们使用来自一个或多个表而没有完全限定它们的类似列名,我们将得到一个错误。

要忽略此错误,我们需要借助以下语法来限定这些列:

table_name.column_name

表Alias用于一个或多个表,并使用JOIN子句的帮助链接它们。在这里,我们将表Alias用于在FROM 子句中指定的表名,以及使命令更具可读性的INNER JOIN子句。

在下面的示例中,我们有一个名为Employee的表,其中包含以下数据:

PostgreSQL Alias

此语句将使用表Alias返回记录:

SELECT employee_details.emp_id, employee_details.emp_fname,   
employee_details.emp_lname  
FROM employee AS employee_details;

输出

执行上述命令后,我们将得到以下结果:

PostgreSQL Alias

让我们假设我们的数据库还有一个名为Department 的\表,它具有以下数据,如下面的屏幕截图所示:

PostgreSQL Alias

正如我们所观察到的,两个表都包含一个相似的列emp_fname

SELECT e.emp_id, emp_fname, emp_lname,location,dept_name    
FROM Employee  e    
INNER JOIN department  d     
ON e.emp_id= d.dept_id;

输出

在执行上述命令时,我们将得到以下输出,其中显示以下错误:如果我们在没有表Alias的情况下使用它,一个子句中的列 'emp_fname' 是不明确的

PostgreSQL Alias

因此,如果我们想避免上述错误,我们将使用表Alias。

在下面的命令中,我们将使用 PostgreSQL Inner Join 子句来组合Employee 和 Department 表;\并对其执行表Alias。

SELECT e.emp_id, e.emp_fname, emp_lname,  
location, dept_name    
FROM Employee  e    
INNER JOIN department  d     
ON e.emp_id= d.dept_id  
ORDER BY location desc;

输出

执行上述命令后,我们将得到以下输出:

PostgreSQL Alias

如果我们不想在命令中使用Alias概念,那么 PostgreSQL 会使用表名来查找列名,这使得语句更冗长且可读性更低,如下面的示例所示

SELECT emp_fname, emp_lname,location   
FROM employee      
INNER JOIN employee_details   
ON employee.emp_id= employee_details.emp_id;

输出

执行上述语句后,我们将得到以下输出:

PostgreSQL Alias

  • 为冗长的表名执行表Alias的示例

为了使我们的命令更具可读性并节省一些输入时间来编写冗长的表名,我们可以使用表Alias。

例如,不要在命令中使用以下表达式,

Long_table_name.column_name

我们可以给表long_table_name一个Alias,如下所示:

Long_table_name AS alias

并借助表Alias引用表Long_table_name 中column_name

alias.column_name
  • 在 PostgreSQL 自联接子句中执行表Alias

假设我们想在Self-join 子句中使用表Alias而自连接子句用于将一个表与其自身合并,它在一个语句中多次引用一个相似的表。

在下面的示例中,我们将展示如何在表Alias的帮助下在类似命令中两次引用Customer表:

SELECT  
c.first_name Customer,  
o.first_name Orders  
FROM Customer c  
INNER JOIN Customer o ON o.order_id = c.order_id  
ORDER BY Orders;

输出

执行上述命令后,我们将得到以下结果:

PostgreSQL Alias

概述

在 PostgreSQL 表Alias部分,我们学习了以下主题:

  • 我们将使用PostgreSQL 表Alias在执行命令时临时为表赋予一个新名称。
  • 我们将在 PostgreSQL Join 子句中实现表Alias。