Разница между синонимом и псевдонимом

Синоним против Alias (в базах данных ORACLE) | Частные синонимы и публичные синонимы
 

В английском языке синоним и псевдоним имеют почти одинаковые значения. Но в базах данных это две разные вещи. Особенно в базах данных ORACLE, их использование отличается. Синонимы используются для ссылки на объекты схемы или базы данных из другой схемы. Таким образом, синоним является типом объекта базы данных. Но псевдонимы идут по-другому. Это значит; они не являются объектами базы данных. Псевдонимы используются для ссылки на таблицы, представления и столбцы внутри запросов..

Синонимы

Это тип объектов базы данных. Они ссылаются на другие объекты в базе данных. Чаще всего синоним используется для ссылки на объект отдельной схемы с использованием другого имени. Но синонимы могут быть созданы для ссылки на объекты другой базы данных (в распределенных базах данных, используя ссылки на базы данных). Таблицы, представления, функции, процедуры, пакеты, последовательности, материализованные представления, объекты классов Java и триггеры могут использоваться в качестве ссылок для синонимов. Есть два типа синонимов.

  1.  Частные синонимы (может использоваться только тем пользователем, который их создал).
  2.  Общедоступные синонимы (могут использоваться всеми пользователями, имеющими соответствующие привилегии)

Вот простой синтаксис для создания синонима в отдельной базе данных,

создать синоним 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.table1 и user2.table2. Все эти псевдонимы действительны только внутри этого запроса. 

В чем разница между синонимом и псевдонимом (в базах данных ORACLE)?

  • Синонимы являются типом объекта базы данных. Но псевдонимы - это просто имя для ссылки на таблицу, представление или столбец внутри запроса. Не объект базы данных.
  • Синонимы могут быть созданы для таблиц, представлений, функций, процедур, пакетов, последовательностей, материализованных представлений, типов объектов классов Java и триггеров. Но псевдонимы используются только для представлений, таблиц и их столбцов..
  • Поскольку синонимы являются объектом базы данных, они действительны внутри схемы (частный синоним) или внутри базы данных (публичный синоним). Но псевдонимы действительны внутри запроса, где они используются.
  • Каждая схема нуждается «Создать синоним» привилегия создавать синонимы. Но нет никакой привилегии использовать псевдонимы.