본문 바로가기
Database

오라클/SQL CREATE SYNONYM: 동의어(시노님) 생성 방법 및 공용 동의어(PUBLIC SYNONYM) 만들기

by 굿센스굿 2025. 3. 31.
반응형

1. 오라클 SYNONYM(동의어)란?

오라클 SQL에서 SYNONYM(동의어, 시노님) 은 특정 객체에 대해 별칭(Alias) 을 제공하는 개념입니다. 이는 SQL 문장을 보다 간결하게 만들고, 데이터베이스 객체를 보다 쉽게 참조할 수 있도록 도와줍니다.

1.1 동의어를 사용하는 이유

동의어는 다음과 같은 경우 유용하게 사용됩니다:

  • 테이블, 뷰 등의 객체 이름이 너무 긴 경우: 긴 객체명을 반복적으로 사용하기보다 짧은 동의어를 활용하면 SQL 작성이 편리해집니다.
  • 다른 사용자가 소유한 객체를 참조하려는 경우: 스키마 이름을 일일이 명시하지 않아도 동의어를 통해 간단히 접근할 수 있습니다.
  • SQL 코드의 유지보수성을 높이고 보안성을 강화하는 경우: 특정 객체의 이름이 변경되더라도 동의어를 재설정하면 기존 SQL 코드의 변경 없이 그대로 사용할 수 있습니다.

2. CREATE SYNONYM 사용법

2.1 기본적인 동의어 생성 (Private SYNONYM)

개별 사용자 전용(Private) 동의어를 생성하는 기본 구문은 다음과 같습니다:

CREATE SYNONYM 동의어이름 FOR 객체이름;

예를 들어, employees_t 테이블에 대해 et라는 동의어를 생성하려면 다음과 같이 실행합니다:

CREATE SYNONYM et FOR employees_t;

이제 employees_t 테이블을 직접 참조하지 않고 et만으로 테이블을 조회할 수 있습니다:

SELECT * FROM et;

2.2 기존 동의어를 덮어쓰는 CREATE OR REPLACE SYNONYM

이미 존재하는 동의어를 변경하거나 새롭게 생성하고 싶다면 CREATE OR REPLACE SYNONYM 명령어를 사용할 수 있습니다.

CREATE OR REPLACE SYNONYM 동의어이름 FOR 객체이름;

예제:

CREATE OR REPLACE SYNONYM et FOR employees_t;

이 명령어를 실행하면 기존의 et 동의어가 새로운 employees_t 객체를 가리키도록 갱신됩니다.

2.3 공용 동의어(PUBLIC SYNONYM) 생성하기

모든 사용자가 사용할 수 있는 공용 동의어(PUBLIC SYNONYM) 를 생성하려면 PUBLIC 키워드를 추가해야 합니다.

CREATE PUBLIC SYNONYM 동의어이름 FOR 객체이름;

예제:

CREATE PUBLIC SYNONYM et FOR employees_t;

💡 주의: PUBLIC SYNONYM을 생성하려면 DBA 권한이 필요하며, GRANT CREATE PUBLIC SYNONYM 권한이 부여되어 있어야 합니다.

GRANT CREATE PUBLIC SYNONYM TO 사용자이름;

3. CREATE SYNONYM 실전 예제

3.1 동의어 생성 예제

다음 예제에서는 employees_t 테이블에 대해 et라는 동의어를 생성합니다.

CREATE OR REPLACE SYNONYM et FOR employees_t;

성공 메시지: Synonym ET가 생성되었습니다.

생성된 동의어는 HR 계정의 접속 탭 하위 메뉴에서 확인할 수 있습니다.

3.2 동의어를 사용한 데이터 조회

동의어를 사용하면 원본 테이블 대신 간단한 이름으로 데이터를 조회할 수 있습니다.

SELECT * FROM et;

이는 다음과 동일한 결과를 반환합니다:

SELECT * FROM employees_t;

3.3 생성된 SYNONYM 목록 조회하기

현재 사용자 계정에서 생성한 동의어 목록을 조회하려면 다음 SQL 문장을 실행합니다.

SELECT synonym_name, table_owner, table_name
FROM user_synonyms;

📌 출력 예시:

SYNONYM_NAME TABLE_OWNER TABLE_NAME

ET HR EMPLOYEES_T

만약 공용 동의어(PUBLIC SYNONYM) 를 확인하고 싶다면 다음 쿼리를 실행합니다:

SELECT synonym_name, table_owner, table_name
FROM all_synonyms
WHERE owner = 'PUBLIC';

4. DROP SYNONYM: 동의어 삭제하기

더 이상 필요하지 않은 동의어는 DROP SYNONYM 명령어로 삭제할 수 있습니다.

DROP SYNONYM 동의어이름;

예제:

DROP SYNONYM et;

💡 공용 동의어를 삭제하려면 PUBLIC을 명시해야 합니다:

DROP PUBLIC SYNONYM et;

5. 정리 및 결론

🔹 SYNONYM(동의어)의 핵심 정리

  • 동의어는 오라클 SQL에서 객체에 대한 별칭을 제공하는 기능
  • PRIVATE SYNONYM(전용 동의어): 특정 사용자가 소유하는 동의어
  • PUBLIC SYNONYM(공용 동의어): 모든 사용자가 사용할 수 있는 동의어 (DBA 권한 필요)
  • 기존 동의어를 덮어쓰려면 CREATE OR REPLACE SYNONYM 사용
  • 생성된 동의어 목록은 USER_SYNONYMS 또는 ALL_SYNONYMS 테이블에서 조회 가능
  • 필요하지 않은 동의어는 DROP SYNONYM으로 삭제 가능

🎯 동의어를 활용하면?

✔ SQL 문장을 간결하게 작성 가능 ✔ 다른 계정의 테이블을 보다 쉽게 참조 가능 ✔ 데이터베이스 객체 변경 시 SQL 수정 없이 동의어만 수정하여 유지보수 가능

동의어 기능을 적절히 활용하여 SQL 개발을 더욱 효율적으로 진행해 보세요! 😊

반응형