[ORACLE] DDL(3) 시퀀스 (정리중)

sleeee·2023년 5월 7일
0

SQL

목록 보기
12/19

시퀀스

  • 연속되는 숫자값을 자동으로 증감시키는 일련번호를 발생시키는 객체
- 형식)
CREATE SEQUENCE 시퀀스명
    [ INCREMENT BY N ]
    [ START WITH N ]
    [ MAXVALUE N| NOMAXVALUE N ]
    [ MINVALUE N| NOMINVALUE N ]
    [ CYCLE | NOCYCLE ]
    [ CACHE | NOCACHE ]

1. NEXTVAL

: 다음값 얻어오기

1)
       CREATE SEQUENCE MY_SEQ1;
	SQL> SELECT MY_SEQ1.NEXTVAL FROM DUAL;

	   NEXTVAL
	----------
		 1

	SQL> SELECT MY_SEQ1.NEXTVAL FROM DUAL;

	   NEXTVAL
	----------
		 2

	SQL> SELECT MY_SEQ1.NEXTVAL FROM DUAL;

	   NEXTVAL
	----------
		 3

2. CURRVAL

: 현재값 얻어오기

SQL> SELECT MY_SEQ1.CURRVAL FROM DUAL; 
--  MY_SEQ1.CURRVAL : 현재 발생된 값

	   CURRVAL
	----------
		3

3. 삭제

DROP SEQUENCE 시퀀스명;
예)
DROP SEQUENCE MY_SEQ1;

예2)
SQL> CREATE SEQUENCE MY_SEQ2 INCREMENT BY 2;
-- 값이 2씩 증가

시퀀스가 생성되었습니다.

SQL>    SELECT MY_SEQ2.NEXTVAL FROM DUAL;

   NEXTVAL
----------
	 1

SQL> SELECT MY_SEQ2.NEXTVAL FROM DUAL;

   NEXTVAL
----------
	 3

SQL>    SELECT MY_SEQ2.NEXTVAL FROM DUAL;

   NEXTVAL
----------
	 5

SQL>    SELECT MY_SEQ2.NEXTVAL FROM DUAL;

   NEXTVAL
----------
	 7

SQL>  CREATE SEQUENCE MY_SEQ3 START WITH 100;
-- 시작값이 100부터 시작

시퀀스가 생성되었습니다.

SQL> SELECT MY_SEQ3.NEXTVAL FROM DUAL;

   NEXTVAL
----------
       100

SQL> SELECT MY_SEQ3.NEXTVAL FROM DUAL;

   NEXTVAL
----------
       101

SQL> SELECT MY_SEQ3.NEXTVAL FROM DUAL;

   NEXTVAL
----------
       102

수업)

1CREATE SEQUENCE MY_SEQ1;
SELECT MY_SEQ1.NEXTVAL FROM DUAL;
SELECT MY_SEQ1.CURRVAL FROM DUAL;

--결과

   NEXTVAL
----------
         1


   CURRVAL
----------
         1

2CREATE TABLE BOARD1(
	NUM NUMBER(3) PRIMARY KEY, --글번호
	WRITER VARCHAR2(20),--작성자
	CONTENT VARCHAR2(50) --글내용
);
CREATE SEQUENCE SEQ_BOARD1;
INSERT INTO BOARD1 VALUES(SEQ_BOARD1.NEXTVAL,'길동','방가워');
INSERT INTO BOARD1 VALUES(SEQ_BOARD1.NEXTVAL,'길동','방가워');
COMMIT;

SELECT * FROM BOARD1;

--삭제
    DROP SEQUENCE 시퀀스명;)
    DROP SEQUENCE MY_SEQ1;

--결과
       NUM WRITER               CONTENT                                           
---------- -------------------- --------------------
         1 길동                 방가워                                            
         2 길동                 방가워 
profile
개인 공부 기록 👩‍💻

0개의 댓글