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 개발을 더욱 효율적으로 진행해 보세요! 😊
'Database' 카테고리의 다른 글
오라클 SQL - DROP SEQUENCE: 시퀀스 객체 삭제하기 (0) | 2025.03.31 |
---|---|
오라클/SQL CREATE SEQUENCE : 시퀀스 만들기, 정수 등차수열 만들기 (0) | 2025.03.31 |
오라클 SQL - DROP SYNONYM : 동의어(시노님) 삭제하기 (0) | 2025.03.31 |
오라클/SQL SELECT - FROM 조회 결과를 CSV, XLSX 파일로 저장하는 방법 (익스포트 마법사 활용) (0) | 2025.03.31 |
오라클 SQL NTILE OVER 함수: 특정 컬럼을 기준으로 등급 부여 및 그룹 묶기 (0) | 2025.03.31 |