-- CASCADE 옵션: 해당 컬럼과 관련 있는 모든 개체들이 함께 삭제(DROP)된다. ALTERTABLE TABLE_NAME DROPCOLUMN COL_NAME CASCADE;
2-2. 컬럼 제거 실습
>> 실습 준비
1 2 3 4
CREATETABLE PUBLISHERS ( PUBLISHER_ID SERIAL PRIMARY KEY, NAMEVARCHARNOTNULL );
1 2 3 4
CREATETABLE CATEGORIES ( CATEGORY_ID SERIAL PRIMARY KEY, NAMEVARCHARNOTNULL );
1 2 3 4 5 6 7 8 9 10 11
CREATETABLE BOOKS ( BOOK_ID SERIAL PRIMARY KEY, TITLE VARCHARNOTNULL, ISBN VARCHARNOTNULL, PUBLISHED_DATE DATENOTNULL, DESCRIPTION VARCHAR, CATEGORY_ID INTNOTNULL, PUBLISHER_ID INTNOTNULL, FOREIGNKEY (CATEGORY_ID) REFERENCES CATEGORIES (CATEGORY_ID), FOREIGNKEY (PUBLISHER_ID) REFERENCES PUBLISHERS (PUBLISHER_ID) );
3개의 TABLE을 하나의 뷰로 생성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
CREATEVIEW BOOK_INFO AS SELECT B.BOOK_ID, B.TITLE, B.ISBN, B.PUBLISHED_DATE, P.NAME FROM BOOKS B, PUBLISHERS P WHERE P.PUBLISHER_ID = B.PUBLISHER_ID ORDERBY B.TITLE;
>> 컬럼 제거 실습
관계:
한 개의 카테고리가 여러 개의 책을 가진다. 한 개의 책은 반드시 카테고리를 가진다.
한 개의 출판사는 여러 개의 책을 출판한다. 한 개의 책은 반드시 출판사를 가진다.
[실습 1] BOOKS 테이블에서 CATEGORY_ID 컬럼을 제거한다
1
SELECT * FROM BOOKS;
1 2 3
ALTERTABLE BOOKS DROPCOLUMN CATEGORY_ID;
SELECT * FROM COOKS;
BOOKS 테이블은 자식 테이블이므로 CATEGORY_ID 컬럼은 제거가 가능하다.
컬럼이 제거되면서 CATEGORY_ID의 FK (Foreign Key) 도 함께 삭제된다.