DB/구자료

SYNONYM(동의어)

쿠키는고양이 2022. 8. 28. 15:18

 

SYNONYM(이하 시노님) 은 "동의어" 라는 뜻을 가진 영단어이다.

단어의 뜻에 맞춰 SQL에서의 시노님은 테이블의 별칭을 만드는 용도로 사용된다.

C 언어에서 #define 을 생각해 보면 쉽게 이해될 것이다.

 

 

1. 시노님의 장점

1) 정식적인 테이블의 본 이름을 숨겨 보안을 강화한다.

2) 복잡한 테이블의 이름을 단순화 하여 사용할 수 있다.

3) 추후 테이블의 이름이 변경되어도 시노님을 변경하면 코드를 변경하지 않고 동일하게 사용할 수 있다.

 

즉, 별칭을 지어 줌으로 본래의 테이블을 감출 수 있으며 테이블의 이름이 매우 길면 짧은 별칭으로 시노님을 정해

일일이 타이핑하는 불편을 없앨 수 있고 테이블의 이름이 변경되어도 코드 전체를 변경할 필요가 없어진다.

 

2. 시노님 생성

시노님을 생성하는 방법은 다음과 같다.

CREATE SYNONYM [SynonymName] FOR [TableName];
 

테이블 생성과 유사하게 CREATE SYNONYM 예약어를 사용한다.

첫번째 [ ] 에는 새로 만들 별칭을 넣어준다.

두번째 [ ] 에는 별칭을 만들 테이블(본 테이블)의 이름을 넣어준다.

 

<예시>

CREATE SYNONYM M FOR MEMBER;
 

여기서 M 은 새로 생성된 시노님 이며, MEMBER 는 본 테이블의 이름이다.

 

여기서 시노님의 접근 권한에 따라 PUBLIC 과 PRIVATE 두 가지의 접근 방법이 생긴다.

 

1) PUBLIC

: 해당 DB 에 접근 권한을 가진 누구나 생성이 가능하다.

: 가장 일반적으로 사용되므로 PUBLIC 은 생략이 가능하다.

CREATE PUBLIC SYNONYM M FOR MEMBER;
 

2) PRIVATE

: 해당 DB 의 관리자만 접근이 가능하다.

CREATE PRIVATE SYNONYM M FOR MEMBER;
 

3. 시노님 출력 / 삽입 / 삭제하기

시노님은 앞서 말했 듯 테이블의 별칭을 정해 준 것이다. 따라서 시노님을 통해서도 테이블 출력이 가능하다.

SELECT * FROM M;
 

위의 쿼리에서 보듯 MEMBER 테이블 대신 M 을 사용한 것을 볼 수 있다.

INSERT INTO M
VALUES ('PARK', '1234', '이름1', '20191122', '좋은동네', '010-0000-0001', 20);
 

데이터 삽입 또한 일반 테이블의 쿼리에 값을 입력하는 것과 동일한 것을 볼 수 있다.

 

아래는 시노님을 삭제하는 방법이다.

DROP SYNONYM M;
 

역시나 테이블 삭제와 비슷한 것을 볼 수 있다.