Oracle 테이블생성해보기

강상은·2023년 12월 3일
0

Oracle

목록 보기
3/7

기본 구조




테이블 생성



인덱스 생성해서 조회했을 때(F10) 전체 검색보다 빠름

--create table Shop.indexTBL as select first_name, last_name, hire_date from HR.employees;

--select * from shop.indectbl;

--select * from indectbl where first_name = 'Jack';

--create index idx_indecTBL_firstname ON indexTBL(first_name);

Sequence란?

  • 데이터베이스에서 고유한 일련번호를 생성하는 데 사용되는 객체입니다. 주로 테이블의 기본 키 값으로 사용되며, 다수의 테이블이나 테이블 간 관계에서 사용될 수 있습니다.

시퀀스(sequence) 생성

  • 테이블 구조 복제 WHERE 1 <> 1은 항상 거짓이므로 실제 데이터가 복사되지 않습니다. 즉, 빈 테이블이 생성
  • 결과적으로, dept_sequence 테이블은 특정 조건을 만족하지 않아 빈 테이블이 될 것입니다. 이렇게 하는 이유 중 하나는
  • 테이블의 구조만을 복사하고데이터는 복사하지 않기 위해서일 수 있습니다.

create table dept_sequence as select * from dept where 1 <> 1;

select * from dept_sequence;

  • 이 시퀀스는 10씩 증가하며, 시작값은 10, 최대값은 90, 최소값은 0으로 설정되어 있습니다. NOCYCLE은 순환하지 않음을 나타내며, CACHE 2는 시퀀스 값을 메모리에 캐시하는 크기를 나타냅니다.

CREATE SEQUENCE seq_detp_sequenc INCREMENT BY 10 start with 10 maxvalue 90 minvalue 0 nocycle cache 2;

select * from user_sequences;

  • 시퀀스 이름.CURRVAL 시퀀스에서 마지막으로 생성한 번호를 반환

  • 시퀀스 이름.NEXTVAL 다음 번호를 생성

  • 테이블에 새로운 데이터를 삽입합니다.

  • seq_detp_sequenc.nextval을 사용하여 시퀀스에서 다음 값을 가져와 사용합니다.

insert into dept_sequence(deptno, dname, loc) values (seq_detp_sequenc.nextval, 'DATABASE', 'SEOUL');

  • 시퀀스에서 현재 값(CURRVAL)을 조회합니다. 이는 바로 전에 삽입한 값에 해당합니다.

select seq_detp_sequenc.CURRVAL from dual;

0개의 댓글

관련 채용 정보