posted by I유령I 2010. 3. 3. 12:42
■ Creating a Table (테이블 생성)
예제)
CREATE TABLE he.employees (
 employee_id NUMBER(6),
 first_name VARCHAR2(20),
 last_name VARCHAR2(25),
 email  VARCHAR2(25),
 phone_number VARCHAR2(20),
 hire_date DATE DEFAULT SYSDATE,
 job_id  VARCHAR2(10),
 salary  NUMBER(8,2),
 commission_pct NUMBER(2,2),
 manager_id NUMBER(6),
 department_id NUMBER(4)
);

※ 테이블생성지침
• 테이블을 별도의 테이블스페이스에 둡니다.
• 단편화를 방지하려면 지역적으로 관리되는 테이블스페이스를 사용합니다.

■ Creating Temporary Tables (임시 테이블 생성)
예제)
CREATE GLOBAL TEMPORARY TABLE
hr.employees_temp
AS SELECT * FROM hr.employees;


■ Changing Storage and Block Utilization Parameters (저장 영역 및 블록 활용 매개변수 변경)
예제)
ALTER TABLE hr.employees
PCTFREE 30
PCTUSED 50
STORAGE (
NEXT 500K
MINEXTENTS 2
MAXEXTENTS 100
);


■ Manually Allocating Extents (확장 영역 수동 할당)
구문
ALTER TABLE [schema.]table
ALLOCATE EXTENT [ ([SIZE integer [K|M]]
[DATAFILE ‘filename’]) ]

예제)
ALTER TABLE hr.employees
ALLOCATE EXTENT (SIZE 500K
DATAFILE '/disk3/data01.dbf');

※ 수정 가능한 매개변수와 수정의 함의는 다음과 같습니다.
• NEXT: Oracle 서버에서 테이블에 대해 다른 확장 영역을 할당할 때 새 값이 사용됩니다. 이후의 확장 영역 크기는 PCTINCREASE만큼 증가합니다.
• PCTINCREASE: PCTINCREASE의 변경 사항은 데이터 딕셔너리에 등록되며 Oracle 서버에서 다음 확장 영역을 할당할 때 NEXT를 재계산하는 데 사용됩니다.
  두 개의 확장 영역을 가진 테이블에서 NEXT=10K 및 PCTINCREASE=0인 경우를 가정해 볼 때 PCTINCREASE를 100으로 변경하면 할당되는 세번째 확장 영역은 10KB이고 네번째 확장 영역은 20KB이며 다섯번째 확장 영역은 40KB입니다.
• MINEXTENTS: MINEXTENTS의 값은 테이블의 현재 확장 영역 수 이하인 값으로 바꿀 수 있으며 테이블에 즉시 영향을 주지는 않지만 테이블이 잘릴 경우 사용됩니다.
• MAXEXTENTS: MAXEXTENTS의 값은 테이블의 현재 확장 영역 수 이상인 값으로 설정할 수 있으며 UNLIMITED로도 설정할 수 있습니다.
※ 제한사항
• 테이블에 대해 INITIAL의 값은 수정될 수 없습니다.
• 지정한 NEXT의 값은 지정한 값 이상인 블록 크기의 배수 값으로 반올림됩니다.


■ Nonpartitioned Table Reorganization (분할되지 않은 테이블 재구성)
예제)
ALTER TABLE hr.employees
MOVE TABLESPACE data1;

 
■ Truncating a Table (테이블 자르기)
구문
TRUNCATE TABLE [schema.]table
[{DROP | REUSE} STORAGE]

예제)
TRUNCATE TABLE hr.employees;

※ 이 명령을 사용한 결과는 다음과 같습니다.
• 테이블의 모든 행이 삭제됩니다.
• TRUNCATE TABLE은 DDL 명령이므로 실행 취소 데이터가 생성되지 않고 명령이 암시적으로 커밋됩니다.
• 해당 인덱스도 잘립니다.
• 외래 키가 참조 중인 테이블은 자를 수 없습니다.
• 이 명령을 사용할 때는 삭제 트리거가 실행되지 않습니다.


■ Dropping a Table (테이블 삭제)
구문
DROP TABLE [schema.]table
[CASCADE CONSTRAINTS]

예제)
DROP TABLE hr.department
CASCADE CONSTRAINTS;


■ Dropping a Column (열 삭제)
예제)
Removing a column from a table:
ALTER TABLE hr.employees
DROP COLUMN comments
CASCADE CONSTRAINTS [CHECKPOINT 1000];


■ Using the UNUSED Option (UNUSED 옵션 사용)
예제)
- Mark a column as unused:
ALTER TABLE hr.employees
SET UNUSED COLUMN comments
CASCADE CONSTRAINTS;

- Drop Unused columns:
ALTER TABLE hr.employees
DROP UNUSED COLUMNS [CHECKPOINT 1000];

- Continue to drop column operation:
ALTER TABLE hr.employees
DROP COLUMNS CONTINUE [CHECKPOINT 1000];

※ 열삭제시제한사항
• 객체 유형 테이블에서 열 삭제
• 중첩 테이블에서 열 삭제
• 테이블의 모든 열 삭제
• 분할 키 열 삭제
• SYS가 소유한 테이블에서 열 삭제
• 열이 기본 키일 경우 인덱스 구성 테이블에서 열 삭제
• 사용되지는 않지만 삭제되지 않은 LONG 또는 LONG RAW 열이 있으면 테이블에 LONG 또는 LONG RAW 열을 추가할 수 없습니다. 이는 테이블 describe 명령에 LONG 또는 LONG RAW 열이 없다고 나타나는 경우에도 적용됩니다.

'Oracle 10g > 10g - Admin I' 카테고리의 다른 글

프로파일 & 유저 관리 & 권한 관리  (0) 2010.03.05
Constraints (제약 조건)  (0) 2010.03.05
Index (인덱스)  (0) 2010.03.05
Tablespace 관련 명령어  (0) 2010.02.27
Redo log group & member 관련 명령어  (0) 2010.02.24