본문 바로가기
SQL

SEQUENCE / SYNONYM

by Minius 2018. 3. 29.
반응형

SEQUENCE(시퀀스) : 

SYNONYM(동의어) : 



/*

    시퀀스(sequence) : 연속적인 번호를 만들어주는 기능

    

    구문형식

    

   CREATE SEQUENCE sequence_name

    [INCREMENT BY n]          -- 시퀀스 번호의 증가값으로 기본값은 1

    [START WITH n]               -- 시퀀스 시작 번호로 기본값은 1

    [MAXVALUE n | NOMAXVALUE]    -- 생성 가능한 시퀀스 최대값

    [MINVALUE n | NOMINVALUE]   -- 시퀀스의 최소값을 설정 : CYCLE일 경우 새로 시작되는 값과 감소하는 시퀀스일 경우 최소값

    [CYCLE | NOCYCLE]          -- 시퀀스를 순화 사용할지를 설정

    [CATCHE n | NOCATCHE]       -- 시퀀스의 속도를 개선하기위해 캐싱여부 지정

*/


create sequence seq_serial_no

INCREMENT by 1

start with 100

MAXVALUE 110

MINVALUE 99

CYCLE

CACHE 2;


drop table good;


CREATE TABLE GOOD(

GOOD_NO NUMBER(3),

GOOD_NAME VARCHAR2(10)

);

SELECT * FROM GOOD;

INSERT INTO GOOD VALUES(SEQ_SERIAL_NO.NEXTVAL, '제품1'); --NEXTVAL : 다음 값

SELECT SEQ_SERIAL_NO.CURRVAL FROM DUAL; --현재값

INSERT INTO GOOD VALUES(SEQ_SERIAL_NO.NEXTVAL, '제품2'); --NEXTVAL : 다음 값

/

DECLARE

 begin FOR i IN 103..120

 LOOP

    INSERT INTO GOOD VALUES(SEQ_SERIAL_NO.NEXTVAL, '제품'||i);

    dbms_output.put_line(i);

 END LOOP;

END;

/

SELECT * FROM GOOD;


set serveroutput on;


alter sequence seq_serial_no increment by -108 minvalue 0;

SELECT SEQ_SERIAL_NO.CURRVAL FROM DUAL; --현재값

alter sequence seq_serial_no increment by 1 minvalue 0;






'SQL' 카테고리의 다른 글

4월 3일 SQL 시험  (0) 2018.04.02
데이터 무결성  (0) 2018.03.30
Role 역할  (0) 2018.03.28
PROCEDURE  (0) 2018.03.27
EXISTS / NOT EXISTS  (0) 2018.03.15

댓글