同义词和别名(在ORACLE数据库中)|私有同义词和公共同义词
在英语中,同义词和别名的含义几乎相同。但在数据库中,这是两种不同的东西。特别是在ORACLE数据库中,它们的用法是不同的。同义词用于从另一个模式引用一个模式或数据库的对象。同义词是一个数据库对象类型。但别名正以不同的方式出现。这意味着;它们不是数据库对象。别名用于在查询中引用表、视图和列。
同义词
这是一种数据库对象。它们引用数据库中的其他对象。同义词最常见的用法是,通过使用另一个名称来引用单独模式的对象。但是也可以创建同义词来引用另一个数据库的对象(在分布式数据库中,使用数据库链接)。表、视图、函数、过程、包、序列、物化视图、java类对象和触发器可以用作同义词的引用。同义词有两种。
- 私有同义词(只能由创建它们的用户使用)。
- 公共同义词(可以由具有适当权限的所有用户使用)
下面是在单独的数据库中创建同义词的简单语法,
创建同义词myschema。mytable1为(电子邮件保护)_link1
因为我们有一个同义词叫mytable1在myschema为(电子邮件保护)_link1(分布式数据库表),可以方便地引用分布式数据库表mytable1。我们不需要在任何地方都使用带有数据库链接的长对象名称。
别名
这些只是视图、表或查询中的列的另一个名称。它们不是数据库对象。因此,别名在模式/数据库中并非处处有效。它们仅在查询中有效。让我们看看这个例子,
选择tab1。col1 c1, tab2。col2为c2
user1。tab1 tab1 user1。tab2 tab2
tab1的地方。col1 = tab2.col2
这里,c1和c2是列别名,用于tab1。col1和tab2。Col2、tab1和tab2是表别名,用于user1。表1和user2.table2。所有这些别名仅在此查询中有效。
同义词和别名的区别是什么(在ORACLE数据库)?
|
一生库马尔说
同义词:当表或表空间被删除时被删除。同义词仅对创建者可用。
别名:即使表或表空间被删除,也会保留。别名可以
即使表不存在也会创建。它主要用于
分布式环境隐藏的位置信息,从程序。别名
是一个全局对象&对所有人都可用。