본문 바로가기

프로그래밍

Oracle sequence(시퀀스) 생성,조회,삭제

안녕하세요 엉뚱한 마녀입니다.

오늘은 Oracle sequence(시퀀스)에 대해서 알아보려고 합니다.

 

Oracle에서 지원해주는 sequence(시퀀스)는 간단하게 예로 들자면

게시판이나 방명록 같은것을 자바소스코드로 만들거나, 또는 만들어져있는것들을 보게 되면

 

글번호 라고 해당 글이 몇번째로 생성되었는 보여주게 되는데,

Oracle에서 지원해주는 sequence(시퀀스)는 글번호를 자동으로 순차적으로 증가하게 할 수 있다.

 

아래를 보시죠^^

아래를 보시면 21이라고 글번호가 보이시죠? 아래는 제가 insert를 하여, 값을 집어넣은 부분인데,

글번호 21은 시퀀스로 자동증가하게 되어 생긴것입니다.

 

insert into board values(seq_id.nextval,'홍길동','동쪽에서 번쩍 서쪽에서 번쩍','아버지를 아버지라 부르지 못하고, ....',sysdate,default)

 

위의 insert 쿼리문을 보시면 seq_id.nextval 부분이 보이실텐데. 이건 시퀀스값을 자동증가하게 해줍니다.

 

그러면 ~ 이제 부터 시퀀스 생성, 조회 , 삭제관련되어서 알아볼텐데요..

참고로, 저는 Oracle 제공한 Oracle Express Edition 10g를 이용했습니다.

 

Oracle Sequence 이용하기

 

/*시퀀스 생성*/

CREATE SEQUENCE SEQ_ID

 

/*시퀀스 생성을 자세하게 하려면..?*/

CREATE SEQUENCE SEQ_ID INCREMENT BY 1 START WITH 1

[설명: CREATE SEQUENCE SEQ_ID로 시퀀스를 생성하는데, INCREMENT(증가)

START WITH(1부터 시작하여) BY 1(1씩 증가한다.)

한마디로 1로 시작해서 1씩 시퀀스가 증가되면서 생성되도록 만드시는거죠..

이렇게 하면 시퀀스이름.NEXTVAL를 할경우 1씩증가하게 됩니다.]


/*생성된 시퀀스 유무 조회*/
select * from user_sequences;

 

/*생성된 시퀀스 삭제*/
DROP SEQUENCE SEQ_ID

 

아래 그림을 보시죠.. 총 4개의 시퀀스가 보이는데, SEQ_ID는 제가 생성한 시퀀스입니다.

여기서 SEQ_ID 시퀀스를 지워보도록할게요..

위의 시퀀스 삭제 DROP SEQUENCE SEQ_ID 를 실행시키시면..

2.과 같이 SEQ_ID가 사라지고 3개만 남게 됩니다. [아래 이미지 참조하여 봐주세요~]

 

 1. SEQ_ID 시퀀스 삭제하기 전 [생성된 시퀀스 유무 조회로 확인 가능합니다.]

 

 

2. SEQ_ID 시퀀스 삭제 후

 

 


 

자 이렇게해서 시퀀스 생성, 조회, 삭제를 한번씩 해보셨을거라 생각되는데요..

오늘은 여기까지하도록할게요 비교적으로 간단한 포스팅이였지만,

이거 쓰는것도 시간이 걸리네요 Copy & paste가 아니여서;

 

PS : Oracle Express Edition 10g는 한글판이여서 좋긴한데, 찾기가 힘드네요;;

      Oracle Express Edition 11g는 홈페이지가면 있는데, 10g는 사라져버려서 구하기 힘들었음;;