[오라클 SQL] 시퀀스(Sequence) 생성하는 방법




 

시퀀스(Sequence)란 자동 순번을 반환하는 데이터베이스 객체입니다!

 

쉽게 예를들어, 학생 테이블의 학생 번호가 현재 1부터 100까지 다 채워저 있고, 다른 학교에서 전학생이 전학을 와서 학생 데이터에 등록을 하려면 지금 현재 학생번호중 가장 Max(최대값)을 구해서 그 값에 +1을 해줘야 하는 번거로운 작업을 진행해야 합니다!

 

때문에, 이런 경우 학생번호를 처음부터 시퀀스로 생성해서 관리해주면 알아서 자동으로 순번을 반환해줘서 매우 편리하게 관리할 수 있게 해줍니다!

 

그렇다면 시퀀스 생성하는 방법을 SQL문 예시를 통하여 보여드리도록 하겠습니다!


 

시퀀스 생성 SQL


1

2

3

4

5

6

7

CREATE SEQUENCE my_Student_Seq

INCREMENT BY 1 --증감숫자

START WITH 1 --시작숫자

MINVALUE 1   --최솟값

MAXVALUE 9999 --최대값

NOCYCLE     --최대나 최소값 도달하면 중지, CYCLE하면 최대값에 도달하면 최소최소값에 도달하면 최대

NOCACHE;    --메모리에 시퀀스 값을 미리 할당

Colored by Color Scripter

cs

 

Toad 시퀀스 결과 화면





 

이렇게 my_Student_Seq가 제대로 생성이 된 것을 확인하실 수 있습니다!


이제는 생성된 시퀀스를 어떻게 테이블에 데이터를 넣는지 알려드릴게요!

 

시퀀스 Inser SQL


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

INSERT INTO WIN.STUDENT

VALUES(MY_STUDENT_SEQ.NEXTVAL, '1',  '범범조조''27''4''A+')

 

;

 

INSERT INTO WIN.STUDENT

VALUES(MY_STUDENT_SEQ.NEXTVAL, '1',  '장미''27''4''A+')

 

;

 

 

INSERT INTO WIN.STUDENT

VALUES(MY_STUDENT_SEQ.NEXTVAL, '2',  '프링글''27''4''A+')

 

;

 

INSERT INTO WIN.STUDENT

VALUES(MY_STUDENT_SEQ.NEXTVAL, '3',  '''27''4''A+')

cs


이처럼 시퀀스.NEXTVAL이라고 사용하면, 시퀀스에 자동으로 순번대로 데이터를 입력하게 됩니다!


INSERT 데이터 조회


이렇게 시퀀스가 자동으로 SCHOOL_NO에 순차적으로 잘 들어간 것을 확인할 수 있습니다!

 

감사합니다~~




728x90

이 글을 공유하기

댓글

Designed by JB FACTORY