새소식

⇥ DevOps Tech 🙋🏻‍♀️/✏️ ORACLE

[ORACLE] TABLE 생성 방법 정리

  • -
반응형

기본 TABLE 생성 SQL 문법

CREATE TABLE 소유자.테이블이름
	(컬럼명 타입 <기본값> NULL 허용여부,
	...
	);

각 항목의 중요내용

CREATE TABLE 테이블 생성하라는 데이터 정의어(DDL)
소유자 테이블의 소유자를 정의하는 옵션
생략 시 해당 명령문을 수행하는 유저가 소유자
테이블이름 테이블의 이름으로 사용할 이름 정의
컬럼명 테이블을 구성하는 컬럼의 이름 정의
타입 컬럼의 데이터 타입과 데이터 길이 정의
기본값 테이블에 데이터를 삽입할 때, 컬럼의 값을 지정하지 않으면 설정되는 기본값
기본값을 설정하지 않는다면 NULL 로 저장
NULL 허용여부 컬럼의 NULL 허용에 대한 속성을 정의

TABLE 생성에 사용되는 옵션

CREATE TABLE USER.TEST
	(COL1 NUMBER(5) NOT NULL,
	NAME VARCHAR2(10) NOT NULL,
	DEPT NUMBER(5) DEFAULT '0')
	TABLESPACE USERS
	PCTFREE 10 INITRANS 1 MAXTRANS 10
	STORAGE(MINEXTENTS 1 MAXEXTENTS UNLIMITED);

1. TABLESPACE 옵션

테이블이 저장되는 공간(TABLESPACE) 를 설정하는 옵션

원하는 TABLESPACE를 지정하고 해당 TABLESPACE에 테이블을 생성할 수 있는 권한이 있다면 지정된 TABLESPACE 에 테이블 생성

TABLESPACE 옵션 없이 테이블을 생성하면 유저의 기본 테이블스페이스에 테이블 생성

 

2. PCTFREE 옵션

해당 블록에 데이터가 UPDATE 될 경우 UPDATE로 인해 증가하는 데이터에 대해 증가한 부분을 저장하기 위해 남겨놓는 블록 공간 설정

데이터의 저장과 변경 유형을 파악하여 변경이 많을 경우 PCTFREE 옵션을 크게 설정

반면, 변경이 적은 테이블은 적게 설정해야 공간을 효율적으로 사용할 수 있음

 

3. INITRANS 옵션 & MAXTRANS 옵션

데이터 블록의 동시 작업 유저의 수(트랜잭션 슬롯 개수)를 설정해주는 옵션, 
블록에 존재하는 데이터의 삭제 및 변경을 수행하기 위해선 블록의 트랜잭션 슬롯을 할당 받아야함.

INITRANS : 해당 블록에 처음 설정하는 트랜잭션 슬롯의 개수 (DEFAULT 테이블 : 1 / 인덱스 : 2)
MAXTRANS : 트랜잭션 슬롯이 부족할 경우 자동으로 추가될 수 있는 최대 개수

 

4. MAXEXTENTS 옵션

해당 테이블에 할당할 수 있는 EXTENT 개수의 최대 값

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.