모든지 기록하자!

[Oracle] SEQUENCE와 동의어 생성/삭제/수정 본문

Database

[Oracle] SEQUENCE와 동의어 생성/삭제/수정

홍크 2021. 6. 1. 22:43
728x90

시퀀스(sequence) 란?

  1. 특별한 숫자 식별자를 생성하는 방법에서 사용하는 오브젝트다.
  2. UNIQUE 또는 PRIMARY KEY에서 사용하기 위한 일종의 일련번호다.
  3. 단독으로 사용될 때는 의미를 가지지 않으며 테이블을 위해 사용한다.
  4. 실제 시퀀스 길이에 제한이 있기 때문에 재 사용시에는 다른 컬럼과 복합하여 UNIQUE 또는 PRIMARY KEY를 구성한다.

시퀀스 생성

CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1     --INCREMENT : 한번씩 증가
START WITH 10
MAXVALUE 100     --생략가능
MINVALUE 1 ;     --생략가능
-- CURRVAL =  현재 SEQ 값 NEXTVAL한번 실행후에 확인가능
SELECT TEST_SEQ.CURRVAL
FROM DUAL;

-- NEXTVAL
SELECT TEST_SEQ.NEXTVAL
FROM DUAL;

시퀀스 삭제

DROP SEQUENCE 시퀀스명

시퀀스 수정

ALTER SEQUENCE TEST_SEQ
INCREMENT BY 3;

시퀀스 예시

-- sequence 생성
CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1     --INCREMENT : 하나씩 증가
START WITH 10
MAXVALUE 100     --생략가능
MINVALUE 1 ;       --생략가능

-- CURRVAL =  현재 SEQ 값   NEXTVAL한번 실행후에 확인가능
SELECT TEST_SEQ.CURRVAL
FROM DUAL;

-- NEXTVAL
SELECT TEST_SEQ.NEXTVAL
FROM DUAL;

-- 수정
ALTER SEQUENCE TEST_SEQ
INCREMENT BY 3;

동의어란?

데이터베이스 전체에서 사용이 가능한 알리아스

  1. 비공개 동의어
  2. 공용 동의어

동의어 사용목적

  1. 데이터베이스의 보안성
  2. 사용의 편의성
  3. 권한관리의 편의성

 

동의어 생성

CREATE SYNONYM [스키마]
FOR [대상스키마];

-- 테스트를 위한 사용자 생성 TEST1
DROP USER TEST1;

CREATE USER TEST1
IDENTIFIED BY 'sa123';

GRANT "CONNECT", "RESOURCE" TO TEST1;

-- 동의어 생성
CREATE SYNONYM HR.EMP FOR HR.EMPLOYEES;
-- 공용 동의어 생성
CREATE PUBLIC SYNONYM EMP1 FOR HR.EMPLOYEES;

--권한 없이 동의어 실행시 에러 발생

-- SYSTEM 계정으로 접속해서 권한 부여
GRANT SELECT ON HR.EMP TO TEST1;
GRANT SELECT ON EMP1 TO TEST1;

-- SYSTEM 계정으로 접속해서 권한 삭제
REVOKE SELECT ON EMP1 FROM TEST1;

동의어 이름 바꾸기

-- 동의어 이름 바꾸기(생성 스키마만 변경가능)
-- 공용 동의어는 이름 바꾸기 불가능 -PUBLIC 스키마에 포함
-- RENAME [이전동의어] TO [신규동의어];
RENAME EMP TO EMP0;

동의어 삭제

DROP SYNONYM [스키마]동의어;

동의어 예시

CREATE SYNONYM EMP
FOR EMPLOYEES;

INSERT INTO EMP(employee_id, last_name, email, hire_date, job_id)
VALUES (EMPLOYEES_SEQ.nextval, '공손', '123@naver.com', SYSDATE, 'IT_PROG');

SELECT * FROM employees;

 

 

728x90

'Database' 카테고리의 다른 글

[Oracle] 이클립스와 오라클 연동하기  (0) 2021.06.08
[Oracle] VIEW 생성/삭제/예시  (0) 2021.06.01
[Oracle] 테이블 작성 예시  (0) 2021.06.01
[Oracle] 무결성 제약 조건  (0) 2021.06.01
[Oracle] SUB QUERY 예제  (0) 2021.05.31
Comments