Synonym vs Alias (в базах данных ORACLE) | Частные синонимы и публичные синонимы
В английском языке синоним и псевдоним имеют почти одинаковые значения. Но в базах данных это две разные вещи. Особенно в базах данных ORACLE их использование отличается. Синонимы используются для ссылки на объекты схемы или базы данных из другой схемы. Таким образом, синоним - это тип объекта базы данных. Но псевдонимы приходят по-другому. Это означает; они не являются объектами базы данных. Псевдонимы используются для ссылки на таблицы, представления и столбцы внутри запросов.
Синонимы
Это тип объектов базы данных. Они ссылаются на другие объекты в базе данных. Чаще всего синоним используется для ссылки на объект отдельной схемы с использованием другого имени. Но синонимы могут быть созданы и для ссылки на объекты другой базы данных (в распределенных базах данных, с использованием ссылок на базы данных). Таблицы, представления, функции, процедуры, пакеты, последовательности, материализованные представления, объекты классов Java и триггеры могут использоваться в качестве ссылок для синонимов. Есть два типа синонимов.
- Частные синонимы (могут использоваться только создавшим их пользователем.)
- Общие синонимы (могут использоваться всеми пользователями, имеющими соответствующие привилегии)
Вот простой синтаксис для создания синонима в отдельной базе данных, создать синоним myschema.mytable1 для [email protected]_link1
Поскольку у нас есть синоним с именем mytable1 в myschema для [email protected]_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. Все эти псевдонимы допустимы только внутри этого запроса.
В чем разница между Synonym и Alias (в базах данных ORACLE)?