DDL 이란? (Data Definition Language)
직역하면, 데이터를 정의하는 언어라고 하며, 테이블이나 관계의 구조를 생성하는 명령어이다.
이 글에서는 DDL 명령어중 총 3가지 CREATE, DROP, ALTER를 알아보는것을 목적으로 하고있다.
**DBA 계정으로 진행**
TABLE SPACE 생성
CREATE TABLESPACE tablespace01 -- 생성할 테이블의 name 설정.
DATAFILE 'C:\지정경로' SIZE 10M -- 생성 테이블 경로와 사이즈 설정.
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED -- 생성 테이블의 최대추가용량 설정.
LOGGING / NOLOGGING -- 로깅사용함, 사용안함 설정.
EXTENT MANAGEMENT LOCAL AUTOALLOCATE -- LOCAL 자동 설정.
BLOCKSIZE 8k -- 블록크기 8k 설정.
SEGMENT SPACE MANAGEMENT AUTO -- 시그먼트관리 자동 설정.
FLASHBACK ON; -- 테이블 추가 및 설정완료.
TABLE SPACE 이름 수정하기
ALTER TABLESPACE tablespace01
RENAME TO table_tbs_new; -- 테이블이름 바꾸기
TABLE SPACE 용량 수정하기
ALTER DATABASE
DATAFILE 'C:\지정경로' RESIZE 20M; -- 20M로 용량수정
TABLE SPACE 삭제
DROP TABLESPACE tablespace01
INCLUDING CONTENTS AND DATAFILES
CASCADE CONSTRAINTS; -- 테이블 삭제
위와 같이 CREATE 는 생성하는 일을 수행하며, ALTER는 수정과 관련된 일을, DROP은 삭제와 관련된 일을 수행하는것을 관찰 할 수 있다.
**hr계정으로 진행**
TABLE default 생성
CREATE TABLE table01 (COL_01 VARCHAR2(10), COL_01 VARCHAR2(10));
-- TABLESPACE디폴트 값인 users로 생성이 이루어진다.
TALBLE 생성
CREATE TABLE table01 (COL_01 VARCHAR2(10), COL_01 VARCHAR2(10))
TABLESPACE tablespace01; -- tablespace01 로 생성됨.
TABLE COPY IN(DATA) : 데이터가 포함된 복사
CREATE TABLE table01 AS SELECT * FROM jobs;
TABLE COPY NOT IN(DATA) : 데이터가 포함되지 않은 복사
CREATE TABLE table01 AS SELECT * FROM jobs WHERE 1=2;
여기에서 AS(Ailas)는 참조할 대상(테이터)을 가르키는 것으로 관찰 수 있으며, 원하는 COLUMN만 복사를 원하면, *을 제외하고 원하는 COLUMN을 선택하면된다.
TABLE 수정 : 이름
ALTER TABLE table01
RENAME TO table02; -- table01의 이름을 table02로 수정1
RENAME table02 TO table01; -- table01의 이름을 table02로 수정2
TABLE 수정 : COLUMN 추가
ALTER TABLE table02
ADD COL_01 VARCHAR2(10); -- 자료형 VARCHAR2(10) 의 COL_01 COLUMN 추가.
ALTER TABLE table02
ADD (COL_02 VARCHAR2(10), COL_03 VARCHAR2(10)); -- COLUMN 다중 추가.
TABLE 수정 : COLUMN 수정
ALTER TABLE table02
MODIFY ( COL_01 VARCHAR2(20) ); -- 자료형 VARCHAR2(20) 으로 COL_01 COLUMN 수정.
ALTER TABLE table02
MODIFY ( COL_02 VARCHAR2(20), COL_03 VARCHAR2(20) ); -- 자료형 VARCHAR2(20)으로 다중수정
TABLE 수정 : COLUMN 삭제
ALTER TABLE table02
DROP COLUMN COL_01; -- COL_01 COLUMN 삭제
ALTER TABLE table02
DROP COLUMN (COL_02, COL_03); -- COLUMN 다중 삭제
TABLE 수정 : COLUMN 이름 수정
ALTER TABLE table02
RENAME COLUMN COL_01 TO COL_11; -- COL_01 COLUMN 을 COL_11로 이름 수정
TABLE 삭제
DROP TABLE table02;
DROP TABLE table02
CASCADE CONSTRAINTS; -- 제약조건까지 삭제, 무결성
TABLE 복구
FLASHBACK TABLE test02
TO BEFORE DROP; -- 휴지통에서 복구
계정 휴지통 비우기
PURGE RECYCLEBIN;
'Language > SQL' 카테고리의 다른 글
Oracle PL/SQL PL00 (Procedural extension to Structured Query Language) (0) | 2019.12.20 |
---|---|
Oracle SQL DDL 02 (Data Definition Language 02) (0) | 2019.12.18 |
Oracle SQL DML : SELECT 02(WHERE) (0) | 2019.12.17 |
Oracle SQL DML : SELECT 01(basic) (0) | 2019.12.12 |
Structured Query Language (SQL 이란?) (0) | 2019.12.12 |