2. SEQUENCE
- 순차적으로 증가(감소)하는 값을 생성하는 오라클 객체
- 테이블과 독립적으로 수행
- 기본키로 선정할만한 컬럼이 존재하지 않는 경우, 자동적으로 증가하는 값이 필요한 경우 사용
(사용형식)
CREATE SEQUENCE 시퀀스명
[START WITH 시작값] --시작값/생략하면 MINVALUE 값
[INCREMENT BY 값] --증(감)값
[MAXVALUE 값|NOMAXVALUE] --최대값 설정,기본은 NOMAXVALUE이며 10^27
[MINVALUE 값|NOMINVALUE] --최소값 설정,기본은 NOMINVALUE이며 1
[CYCLE|NOCYCLE] --최대[최소]값 까지 도달 후 다시 시퀀스를 생성할 지 여부. 기본은 NOCYCLE
[CACHE n | NOCACHE] -- 시퀀스를 생성하여 캐쉬에 저장할지 여부, 기본은 CACHE 20
[ORDER | NOORDER] --위 조건대로 시퀀스 생성을 보장할지 여부, 기본은 NOORDER
- 시퀀스 값을 참조하기 위한 의사컬럼(Pseudo Column)
-------------------------------------------
의사컬럼 내용
-------------------------------------------
시퀀스명.NEXTVAL '시퀀스'의 다음 값 반환
시퀀스명.CURRVAL '시퀀스'의 현재 값 반환
***시퀀스가 생성된 후 처음 사용하는 명령은 반드시 NEXTVAL이어야 함
사용예)
CREATE SEQUENCE SEQ_TEST
START WITH 10;
-- SELECT SEQ_TEST.CURRVAL FROM DUAL; --처음은 NEXTVAL 사용해야 함
SELECT SEQ_TEST.NEXTVAL FROM DUAL;
SELECT SEQ_TEST.CURRVAL FROM DUAL;
사용예)분류테이블에 다음 자료를 삽입하시오
자료
------------------------------------
LPROD_ID LPROD_GU LPROD_NM
------------------------------------
시퀀스 사용 P501 농산물
시퀀스 사용 P502 수산물
시퀀스 사용 P503 농산가공식품
CREATE SEQUENCE SEQ_LPROD_ID
START WITH 10;
INSERT INTO LPROD VALUES(SEQ_LPROD_ID.NEXTVAL,'P501','농산물');
INSERT INTO LPROD VALUES(SEQ_LPROD_ID.NEXTVAL,'P502','수산물');
INSERT INTO LPROD VALUES(SEQ_LPROD_ID.NEXTVAL,'P503','농산가공식품');
SELECT * FROM LPROD;
CREATE SEQUENCE SEQ_CART_NO
START WITH 1;
SELECT TO_CHAR(SYSDATE,'YYYYMMDD')||TRIM(TO_CHAR(SEQ_CART_NO.NEXTVAL,'00000'))
FROM DUAL;
3. 동의어(SYNONYM)
- 오라클 객체에 부여하는 별칭
- 테이블 별칭은 해당 SQL문에서만 유효하지만 동의어는 테이블 처럼 모든 곳에서 사용 가능
- 다른 소유자의 객체 접근시 긴 수식어 대신 짧고 사용하기 쉬운 별칭 부여에 사용
(사용형식)
CREATE [OR REPLACE] SYNONYM 동의어 FOR 객체명;
사용예)HR계정의 사원테이블과 부서테이블에 EMP 및 DEPT라는 동의어를 부여하시오.
CREATE OR REPLACE SYNONYM EMP FOR HR.EMPLOYEES;
CREATE OR REPLACE SYNONYM DEPT FOR HR.DEPARTMENTS;
SELECT * FROM DEPT;
SELECT EMPLOYEE_ID, EMP_NAME, SALARY
FROM EMP
WHERE DEPARTMENT_ID=50;
'ORACLE 복습 & 정리' 카테고리의 다른 글
[ORACLE] PL/SQL 221130-04 (1) | 2022.11.30 |
---|---|
[ORACLE] INDEX 221130-03 (0) | 2022.11.30 |
[ORACLE] 계층형 쿼리 221129-03 (0) | 2022.11.30 |
[ORACLE] VIEW 221130-01 (0) | 2022.11.30 |
[ORACLE] 집합연산자 221129-02 (0) | 2022.11.29 |