Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- order by
- SUB Query
- static
- 싱클톤패턴
- 스프링 모달창
- 다운캐스팅
- 다중 모달창
- 템플릿
- spring annotation
- oracle 연동
- static 예제
- 사용자 데이터그램 프로토콜
- 형변환
- static메서드
- react
- 모달창 여러개
- AOP란?
- GROUP BY
- 이클립스 오라클 연동
- singleton
- Java
- 상속
- downcasting
- 깃 명령어
- 리스트 모달창
- IP
- 객체협력
- 오라클 비교연산자
- 추상 메서드
- Servlet 맵핑
Archives
- Today
- Total
모든지 기록하자!
[Oracle] SEQUENCE와 동의어 생성/삭제/수정 본문
728x90
시퀀스(sequence) 란?
- 특별한 숫자 식별자를 생성하는 방법에서 사용하는 오브젝트다.
- UNIQUE 또는 PRIMARY KEY에서 사용하기 위한 일종의 일련번호다.
- 단독으로 사용될 때는 의미를 가지지 않으며 테이블을 위해 사용한다.
- 실제 시퀀스 길이에 제한이 있기 때문에 재 사용시에는 다른 컬럼과 복합하여 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;
동의어란?
데이터베이스 전체에서 사용이 가능한 알리아스
- 비공개 동의어
- 공용 동의어
동의어 사용목적
- 데이터베이스의 보안성
- 사용의 편의성
- 권한관리의 편의성
동의어 생성
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