DDL (CREATE, ALTER, DROP, TRUNCATE) 실습

489 단어·1 분·원문(.md)

CREATE #

넷플릭스 테이블을 한번 CREATE 해보겠다.

컬럼으로는 영상 이름, 카테고리, 조회수, 영상 등록 날짜가 있다.

CREATE TABLE NETFLIX(

    VIDEO_NAME VARCHAR2(20),
    CATEGORY VARCHAR2(20),
    VIEW_CNT NUMBER(7),
    REGISTER_DATE DATE
);

ORACLE에서는 문자형을 VARCHAR2로 선언한다.
NUMBER에서의 인자는 숫자의 자릿수를 의미한다. 7 > 1,000,000 7자리

ALTER #

등록한 넷플릭스 테이블의 새로운 컬럼 캐스팅 멤버를 추가해보겠다

ALTER TABLE NETFLIX ADD(CAST_MEMBER VARCHAR2(20))

이번에는 캐스팅 멤버의 문자 길이를 50으로 늘려보겠다.

ALTER TABLE NETFLIX MODIFY(CAST_MEMBER VARCHAR2(50))

이번에는 캐스팅 멤버의 타입을 NUMBER로 바꾸어보겠다. (단 이미 등록된 데이터가 문자로 존재하면 오류가 발생한다.)

ALTER TABLE NETFLIX MODIFY(CAST_MEMBER NUMBER(2))

마지막으로 이번에는 캐스팅 멤버의 컬럼을 삭제해보겠다.

ALTER TABLE NETFLIX DROP(CAST_MEMBER)

DROP, TRUNCATE #

DROP은 테이블 자체를 삭제하는 것이고
TRUCATE는 테이블을 초기화하는 것이다 (로그를 남기지 않기 때문에 데이터 복구가 불가능하다)

먼저 테스트용 테이블을 생성해보겠다. 그리고 데이터도 추가하겠다.

CREATE TABLE TEST_TABLE(
    COL1 VARCHAR2(3),
    COL2 VARCHAR2(3)
);

INSERT INTO TEST_TABLE VALUES('AAA', 'BBB');
INSERT INTO TEST_TABLE VALUES('CCC', 'DDD');

COMMIT;

DROP을 하고 TEST_TABLE을 SELECT해보면 어떤 테이블도 조회가 되지 않는다.

DROP TABLE TEST_TABLE;
SELECT * FROM TEST_TABLE;

TRUNCATE를 하고 TEST_TABLE을 SELECT해보면 데이터가 전부 초기화 된다.

TRUNCATE TABLE TEST_TABLE;
SELECT * FROM TEST_TABLE;
DataBase/sql/ddl.md