SYNONYM в Oracle SQL — как создавать псевдонимы для таблиц

🟢 SYNONYM в Oracle SQL. Введение

SYNONYM — это объект базы данных, позволяющий создать псевдоним для другого объекта: таблицы, представления, последовательности, процедуры и т.д. Он облегчает доступ, особенно если:

  • Объект в другой схеме

  • Имя объекта слишком длинное

  • Нужна абстракция от физической структуры

Синонимы бывают публичные и приватные, и они не влияют на права доступа — только на удобство вызова.


🔤 Написание

sql
CREATE [PUBLIC] SYNONYM псевдоним FOR объект;

Удаление:

sql
DROP SYNONYM псевдоним;

🔄 Где используется

  • Упрощение SQL-кода

  • Обращение к объектам других схем

  • Замена длинных или технических имён

  • Абстрагирование логики работы от структуры БД

  • Организация доступа в корпоративных системах


🧪 10 Примеров использования

1️⃣ Создание синонима для таблицы

sql
CREATE SYNONYM emp FOR hr.employees;

Теперь можно писать просто:

sql
SELECT * FROM emp;

2️⃣ Синоним для процедуры

sql
CREATE SYNONYM run_payroll FOR finance.run_monthly_payroll;

3️⃣ Синоним для представления

sql
CREATE SYNONYM active_users_view FOR reports.v_active_users;

4️⃣ Публичный синоним (доступен всем)

sql
CREATE PUBLIC SYNONYM prod FOR sales.products;

5️⃣ Удаление синонима

sql
DROP SYNONYM emp;
DROP PUBLIC SYNONYM prod;

6️⃣ Переименование объекта без изменения логики у пользователей

sql
-- Была таблица:
CREATE TABLE data_2024 (...);
— Псевдоним:
CREATE SYNONYM current_data FOR data_2024;— В 2025:
DROP SYNONYM current_data;
CREATE SYNONYM current_data FOR data_2025;

7️⃣ Доступ к объекту без префикса схемы

sql
-- Без синонима:
SELECT * FROM reporting_schema.sales_summary;
— С синонимом:
CREATE SYNONYM summary FOR reporting_schema.sales_summary;
SELECT * FROM summary;

8️⃣ Использование в PL/SQL

plsql
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM emp;
DBMS_OUTPUT.PUT_LINE('Всего сотрудников: ' || v_count);
END;

9️⃣ Псевдонимы и безопасность

Даже если есть синоним, пользователь должен иметь права на оригинальный объект.


🔟 Проверка всех синонимов в БД

sql
SELECT synonym_name, table_owner, table_name
FROM all_synonyms
WHERE synonym_name = 'EMP';

🧩 SYNONYM в Oracle SQL. Заключение

synonym — это простая, но мощная возможность сделать SQL-запросы более читаемыми и независимыми от физической структуры базы. Особенно полезен в многосхемных системах, пакетах и отчётах.

💡 Запомни:

  • Псевдоним = короткое имя для объекта

  • Не даёт прав — только переадресует

  • Может быть публичным (для всех) или приватным (только в схеме)

  • Легко переключать «под капотом» — пользователи не замечают


🔜 Следующая статья:

SUBTYPE в Oracle SQL — как создавать типы-подмножества в PL/SQL


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии