반응형
DDL
- CREATE
- ALTER
- DROP
CREATE
- 테이블을 만드는 명령어
- 새로운 테이블을 지정해서 만드는 방법과 기존 테이블을 가지고 와서 생성하는 방법 있다.
- 기존 테이블을 가지고 오는 경우, 데이터 타입과 데이터 내용이 똑같이 복사된다.
CREATE TABLE emp01(
empno NUMBER(4),
ename VARCHAR2(20),
sal NUMBER(7,2) );
CREATE TABLE emp03
AS SELECT ename, job FROM emp;
CREATE TABLE emp04
AS SELECT * FROM emp WHERE deptno=10;
CREATE TABLE emp05
AS SELECT * FROM emp WHERE deptno=10;
ALTER
- 기존의 테이블을 변경하는 명령어
- 기존 테이블에 컬럼을 더하거나, 컬럼을 수정하거나, 컬럼을 삭제할 수 있다.
- ADD COLUMN
- MODIFIY COLUMN
- DROP COLUMN
ADD COLUMN
- 테이블에 새로운 컬럼을 더하는 명령어
- 순서는 지정할 수 없으며, 기존에 있던 컬럼의 가장 뒤에 더해진다.
MODIFIY COLUMN
- 테이블에 이미 존재하는 컬럼을 변경하는 명령어
- 컬럼의 크기나 컬럼의 데이터 타입을 변경할 수 있지만, 해당 컬럼에 이미 데이터가 있는 경우에는 제약이 걸린다.
- 컬럼의 데이터 타입 변경: 컬럼에 데이터가 없거나, CHAR ↔ VARCHAR만 가능
- 컬럼의 데이터 크기 변경: 컬럼에 데이터가 없거나, 현재 값보다 더 큰 값으로만 변경 가능
ALTER TABLE emp01 MODIFY(job VARCHAR2(30));
DROP COLUMN
- 기존 칼럼을 삭제하는 것
- 유의: 여러 사용자가 이용하는 DB의 경우, 일단 UNUSED 상태로 둔 다음 시일이 지나고 문제가 없다면 삭제한다.
- 삭제할 때는 해당 테이블에 접근할 수 없기 때문에 사용 빈도가 가장 낮은 시간에 DROP 명령문을 실행하는 것이 좋다.
ALTER TABLE emp01 DROP COLUMN job;
UNUSED - DROP 전에 거치기 권유되는 작업
ALTER TABLE emp02 SET UNUSED (job);
SELECT * FROM USER_UNUSED_COL_TABS;
ALTER TABLE emp02 DROP UNUSED COLUMNS;
DROP TABLE
- 테이블을 삭제하면서, 그 안에 있던 데이터도 함께 삭제하는 명령어
- 제거한 데이터는 복구가 힘듦을 유의한다.
DROP TABLE emp01;
TRUNCATE
- 테이블의 구조는 남기고, 데이터는 제거하는 명령어
- 최초 테이블이 만들어진 상태로 테이블을 되돌린다.
TRUNCATE TABLE emp02;
DELETE vs TRUNCATE vs DROP
반응형