STUDY/web
[Oracle] Sequence, Index 정리
이앤지
2021. 11. 8. 19:34
Sequence
시퀀스는 테이블 내의 유일한 숫자를 자동으로 생성하는 자동 번호 발생기.
시퀀스를 기본 키로 사용하게 되면 사용자의 부담을 줄일 수 있다.
-- Sequence : 숫자를 생성해주는 객체
-- 설정을 통해서 일련 번호를 생성 -> 기본키가 대리키인 경우 입력 값으로 사용
-- sequence 의 생성
-- create sequence {시컨스이름} 설정...
-- 시퀀스 생성
create sequence test_seq;
desc dept;
select * from dept;
-- 부서 번호를 자동으로 부여해주는 시퀀스 객체를 생성.
-- 시작 값은 10, 증가값은 10, 10~99
create sequence dept_deptno_seq
start with 10
increment by 10
MAXVALUE 90
;
-- sequence 삭제
drop sequence dept_deptno_seq;
-- 시작 값이 1이고 1씩 증가하는 시퀀스 EMP_SEQ을 생성합니다.
create sequence emp_seq
start with 1
increment by 1
MINVALUE 1
MAXVALUE 9999
;
-- 시퀀스의 값을 확인
-- 현재 값
select emp_seq.currval from dual;
select dept_deptno_seq.currval from dual;
-- 다음(새로운) 값
select emp_seq.nextval from dual;
select dept_deptno_seq.nextval from dual;
Index
검색의 성능을 높이기 위해 사용하는 객체!
물리적인 저장공간을 가진다 -> 저장공간 확보 필요
데이터의 변경시에는 성능이 떨어질 수 있다.
필수가 아니라 선택이고
검색이 오래 걸리는 환경에서 주로 사용.
코드
drop table emp01;
create table emp01
as
select * from emp
;
select count(*) from emp01;
insert into emp01 (empno, ename) values (1000, 'test1');
select * from emp01 where ename='test1';
select * from emp01;
delete from emp01 where ename='SCOTT';
commit;
-- 많은 데이터 입력
insert into emp01 select * from emp01 ;
create index emp01_index on emp01(ename);
select * from book;
delete from book where bookid>10;
drop table book_log;