(오라클) Sequence/시퀸스의 활용과 개념

"왜 우린 오라클에서 시퀸스를 써야하는가?"

매일 오라클 사용자가 insert을 써서, 값을 일일이 타이핑 하는것도 노가다다.
우리 인간은 똑똑하기 때문에, sequence라는 걸 만들어서 자동화가 되게 만들었다.
간단한 규칙과 몇개의 숫자면 자동화가 된다는 얼마나 time-saving이라는 것 인가.


수학이랑 똑같다.

1, 2 , 3, 4, 5, 6...100

이 시퀸스를 보면 무슨 생각이 드는가? 수학적으로 해석하면,

1부터 시작,
100이 끝
+1 만큼
순환 x


이걸 우리는 영어로 쓸것이다.


"시퀸스는 어떻게 써야하는가?"

아무 계정에서, create table 을 해서 sequence 을 만들것이다.

create table emp01(

    empNo number(13) primary key,  
    name varchar2(50) not null,
    hire_date date
);

sequence을 만드는 방법이 두가지가 있는데,
하나는 일일히 입력해서 만드는 것이고,

create sequence emp_SEQ
minvalue 1 //최솟값
maxvalue 999999999999999999 // 최대값
increment by 10 //증가값
start with 10 //10부터 시작
nocycle; //주기 없음

또 하나느 테이블을 펼쳐서 시퀸스를 눌러주고, 값을 입력해주면 된다.


시퀸스-> 오른쪽 마우스 클릭 -> 새 시퀸스

테이블에서 행을 집어넣을때
insert으를 쓴다

insert into emp01(empNo, name, hire_date) values(emp_SEQ.nextval,  'lucky', sysdate);


시퀸스에서 다른 insert 처럼 값을 바꿔서 넣지 않아도 된다
왜냐하면, 시퀸스에서 lucky란 이름은 중복되어도 되서 에러도 안뜨고
empNo만 중복이 안되면 에러가 안뜬다.

계속 ctrl + enter을 누르면 누른 숫자 만큼 데이타가 입력된다.

삭제하고 싶을때에는,

delete emp01 where empno = 30;

삭제하고 싶은, empNo =30, 을 써준다
왜 empNO을 쓰고 이름이나 hire_date을 안쓰냐? 왜냐하면, 이것들은 다 중복될수있는 
데이타 이기 때문이다.


"관리자 계정 (sys)에서 모든 시퀸스를 볼려면?"

select * from dba_sequences;


이렇게 모든걸 보여준다.




댓글

이 블로그의 인기 게시물

c++ 랜덤 숫자 생성하기 / 컴퓨터 난수 시드 설정

(오라클) View(뷰) + where/order by/like/is/() / in 사용방법 예제