본문 바로가기

DATABASE/OBJECT : 객체

05. 공식 별칭을 지정하는 동의어

동의어란?

동의어(synonym)는 테이블, 뷰, 시퀀스 등 객체 이름 대신 사용할 수 있는 다른 이름을 부여하는 객체이다. 주로 테이블 이름이 너무 길어 사용이 불편할 때 좀더 간단하고 짧은 이름을 하나 더 만들어 주기 위해 사용한다. 동의어를 만들기 위해서는 CREATE문을 사용한다.

CREATE [PUBLIC] SYNONYM 동의어 이름 FOR 사용자. 객체이름 ;

    - PUBLIC : 동의어를 데이터베이스 내 모든 사용자가 사용할 수 있도록 설정. 생략시 동의어를 생성한 사용자만 사용가능. PUBLIC으로 생성되어도 본래 객체의 사용 권한이 없으면 사용 불가능(선택)

    - 동의어 이름 : 생성할 동의어의 이름 (필수)

    - 사용자. : 생성할 동의어의 본래 객체 소유자를 지정한다. 생략시 현재 접속한 사용자로 지정된다 (선택)

    - 객체이름 : 동의어를 생성할 대상 객체의 이름 (필수)

생성한 동의어는 SELECT, INSERT, UPDATE, DELETE등 SQL문에서 사용가능하다. 동의어는 SELECT문의 SELECT절, FROM절에서 사용한 열 또는 테이블 별칭과 유사하지만, 오라클 데이터베이스에 저장되는 객체이기 때문에 일회성이 아니라는 점이 다르다. 동의어 생성 역시 권한을 부여해야하므로 SYSTEM 계정으로 접속후 GRANT CREATE (PUBLIC) SYNONYM TO SCOTT; 로 권한을 부여해주자.

 

동의어 생성

동의어 생성 권한이 부여되었다면 동의어를 만들어 볼 수 있다.

CREATE SYNONYM E FOR EMP;

SELECT * FROM E;  >> EMP테이블의 전체 내용 조회가 가능하다.

 

동의어 삭제

DROP SYNONYM E; 동의어가 삭제되고, 동의어로 SELECT를 할 수 없지만 EMP테이블의 이름과 데이터에는 아무 영향을 주지 않는다.