Daily coding
Oracle day 7 - SEQUENCE 시퀀스 & SYNONYM 동의어 본문
SEQUENCE
sequence : 유일한 값을 생성해주는 Oracle Object
회원번호, 게시판 관리 글번호
- 순서를 관리 하기 위해 사용
- 초기화가 불가능 : 삭제 후 다시 사용해야 함
- 생성이 되면 계속 증가시킬 수 있음
자바에서도 이렇게 쓰임
int count = 1;
count++;
1. sequence 생성
CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1 -- 증가할 값 설정 : 1
START WITH 10 -- 시작할 값 설정 : 10부터
MAXVALUE 100 -- 최대 얼마까지 증가시키는지(생략가능)
MINVALUE 1; -- 최소 얼마부터 증가시키는지 (생략가능)
< 참고 >
NOCACHE -- 오라클 서버가 미리 할당하고 유지하는 여부를 결정 ( NOCACHE : 저장안함 )
NOCYCLE -- 최대값, 최소값에 도달한 후에 계속 값을 생성(사용)할지를 지정
* CURRVAL & NEXTVAL
-- CURRVAL : 현재의 시퀀스 값
-- 시퀀스명.CURRVAL
SELECT TEST_SEQ.CURRVAL -- 맨처음은 오류
(아무값도 안나와있기 때문에 NEXTVAL 한번 실행된 후로 CURRVAL사용가능)
FROM DUAL;
-- NEXTVAL : 진행 값
-- 시퀀스명.NEXTVAL
SELECT TEST_SEQ.nextval
FROM DUAL;
-- 테이블에 시퀀스 번호를 늘리고 싶을 때는 테이블 값을 변경하거나 테이블에서 시퀀스를 NEXTVAL하는 것이 아니고
-- 테이블에 존재하는 시퀀스에 NEXTVAL을 실행한다.
2. SEQUENCE 수정
-- 값은 수정하지 못함
-- 최대값, 최소값 또는 증가하는 값을 변경할 수 있다.
ALTER SEQUENCE TEST_SEQ
INCREMENT BY 3; -- 증가값을 바꿀 수 있음
-- 이 다음부터 NEXTVAL을 하면 3씩 증가됨
2. SEQUENCE 삭제
-- 초기화가 불가능한 SEQUENCE
-- 다시 사용하기 위해서는 OR REPLACE로 다시 덮어 씌우던가 지우고 다시 사용해야함
DROP SEQUENCE TEST_SEQ;
동의어
: SYNONYM / 객체의 별명
자바에서의 객체의 동의어?
int array_number[];
int arrPosNum [] = array_number;
이런 느낌
1. Synonym 생성하기
-- SYNONYM FOR
CREATE SYNONYM "사원들"
FOR EMPLOYEES;
-- 아래의 코드는 employees 테이블의 데이터가 모두 출력된다.
SELECT * FROM 사원들;
-- SYNONYM 으로 테이블에 데이터 삽입하기
INSERT INTO "사원들"
VALUES ( EMPLOYEES_SEQ.NEXTVAL , '길동', '홍', 'HGD@NAVER.COM', -- SEQUENCE의 사용법
'123-456-789', TO_DATE('20050101', 'YYYYMMDD'), 'IT_PROG', 20000, NULL, 100, 10);
'DB > Oracle' 카테고리의 다른 글
Oracle day 7 - Index 인덱스 (0) | 2019.12.19 |
---|---|
Oracle day 7 - view & sequence 문제 (0) | 2019.12.19 |
Oracle day 7 - View 뷰 & 테이블 (0) | 2019.12.19 |
Oracle day 6 - DDL 연습문제 (scott) (0) | 2019.12.18 |
Oracle day 6 - DDL 연습문제 (hr) (0) | 2019.12.18 |