SQL 中的同义词

2025 年 2 月 25 日 | 阅读时间:2 分钟

在本文中,我们将详细介绍同义词的概念。

引言

同义词是模式对象(如表、视图、序列、过程、函数等)的别名。它类似于视图,因为这两种对象都允许您通过不同的名称引用表。但是,同义词不允许您限制列或重命名它们。

我们可以创建两种类型的同义词

  • PUBLIC 同义词
  • PRIVATE 同义词

PUBLIC 同义词:此类同义词由名为 PUBLIC 的特殊用户组拥有,并且仅对创建它的 SQL 用户可见。

PRIVATE 同义词:此类同义词包含在特殊用户的模式中,并且仅对 SQL 用户可用。

创建同义词

要创建同义词,您必须具有 CREATE SYNONYM 权限。

以下是创建同义词的语法

在上述语法中,'owner' 是拥有引用表或视图的 SQL 帐户的名称,'object_name' 是同义词引用的表或视图的名称。

示例

在上述示例中,我们在 Ajay 模式中包含的 employee 表上创建了一个名为 public_employee 的公共同义词。

同义词的用途

同义词用于以下原因

  • 您可能希望创建同义词来引用名称不合适或难以记住的表。 例如:以下查询创建了一个同义词“arch_book”,它指向表“archeologist_library_books”表。
  • 同义词还用于隐藏表所有权。 例如,如果用户“Anshu”创建了“Project”表并希望允许 SQL 用户“SCOTT”读取“Project”表,则用户“Anshu”首先授予“SCOTT”选择权限。但是,每次 SCOTT 想要查看表时,他都必须记住用“Anshu”限定表名。表所有者。因此,他创建一个私有同义词,使他能够仅通过项目名称引用表。

然后,在创建同义词后,用户可以使用 SELECT 语句,如下所示

  • 同义词为引用表提供了附加名称。

删除同义词

与创建一样,您也可以使用 DROP SYNONYM 语句在您的模式中删除同义词。

以下是删除同义词的语法

以下是删除同义词的示例

查看同义词

要查看创建的同义词,我们使用 USERS_SYNONYMS 数据字典视图


下一个主题SQL 中的转换函数