2- Oracle别名

Oracle ALIASES可用于为列或表创建临时名称(或叫作别名)。

  • 列别名用于使结果集中的列标题更容易阅读。
  • 表别名用于缩短SQL,或者当执行自连接时(即:在FROM子句中多次列出同一个表)以使其更容易阅读。

句法

Oracle / PLSQL中的列别名的语法是:

column_name AS alias_name

或者-
Oracle / PLSQL中的表别名语法是:

table_name alias_name

参数

  • column_name
    想要使用别名的列的原始名称。
  • table_name
    想要使用别名的表的原始名称。
  • alias_name
    要分配的临时名称(也是使用的别名名称)。

注意

  • 如果alias_name包含空格,则必须用引号括起alias_name
  • 在对列名称进行别名时,可以使用空格。 但是,在对表名进行别名时,通常不要使用空格。
  • alias_name仅在SQL语句的作用域内有效。

示例1 - 在列上使用别名

通常,别名用于使结果集中的列标题更容易阅读。 例如,将字段连接在一起时,可能在结果中使用别名。

例如:

SELECT contact_id, first_name || last_name AS NAME
FROM contacts
WHERE last_name = 'Anderson';

在本例中将第二列(即:first_namelast_name 连接)使用别名为NAME。 因此,当返回结果集时,NAME将显示为第二列的标题。 因为alias_name不包含任何空格,所以不需要在引号中包含alias_name
但是,使用引号编写此示例也是完全没有问题的,如下所示:

SELECT contact_id, first_name || last_name AS "NAME"
FROM contacts
WHERE last_name = 'Anderson';

接下来,再来看看另外一个例子,需要在引号中包含alias_name

例如:

SELECT contact_id, first_name || last_name AS "CONTACT NAME"
FROM contacts
WHERE last_name = 'Anderson';

在此示例中,我们将第二列(即:first_namelast_name连接)使用一个别名为“CONTACT NAME”。 由于alias_name中有空格,因此“CONTACT NAME”必须用引号括起来。

示例2 - 在表上使用别名

当在表上创建别名时,它是因为要在FROM子句中多次列出同一个表名(即:自连接),或者想要缩短表的名称以缩短SQL语句,使SQL语句更容易阅读。

让我们来看看如何在Oracle / PLSQL中对表名使用别名。

例如:

SELECT p.product_id, p.product_name, categories.category_name
FROM products p
INNER JOIN categories
ON p.category_id = categories.category_id
ORDER BY p.product_name ASC, categories.category_name ASC;

在此示例中,products表创建了一个别名为p。 现在在这个SQL语句中,可以参考products表为p,也就是可以直接写p来表示products表。

创建表别名时,不必在FROM子句中列出的所有表创建别名。可以选择在任何或所有表上创建别名。

例如,可以修改上面的示例,并为 categories 表创建别名。

SELECT p.product_id, p.product_name, c.category_name
FROM products p
INNER JOIN categories c
ON p.category_id = c.category_id
ORDER BY p.product_name ASC, c.category_name ASC;

现在我们有一个名称为ccategories表别名,和一个名称为pproducts表的别名。

你可能感兴趣的:(2- Oracle别名)