본문 바로가기

데이터베이스

[SQL] 테이블 변경, 삭제 - ALTER TABLE, DROP TABLE (설명, 연습문제)

 

테이블의 변경

ALTER TABLE 테이블_이름

해당 명령문을 이용해 새로운 속성 추가, 기존 속성 삭제, 새로운 제약조건 추가, 기존 제약조건 삭제 등이 가능하다.

▶ 새로운 속성 추가

ALTER TABLE 테이블_이름 ADD 속성_이름 데이터 타입 [NOT NULL] [DEFAULT 기본_값];

▶ 기존 속성 삭제

ALTER TABLE 테이블_이름 DROP COLUMN 속성_이름;

삭제할 속성과 관련된 제약조건이 있거나 이 속성을 참조하는 다른 속성이 있는 경우에는 속성을 삭제할 수 없다.

관련된 제약조건이나 참조하는 다른 속성을 먼저 삭제한 후 해당 속성을 삭제해야 한다.

NOTE. 오라클에서는 [CASCADE CONSTRAINTS]를 추가하여 삭제할 속성과 관련된 제약조건을 함께 삭제할 수도 있다.

▶ 새로운 제약조건 추가

ALTER TABLE 테이블_이름 ADD CONSTRAINT 제약조건_이름 제약조건 내용;

▶ 기존 제약조건 삭제

ALTER TABLE 테이블_이름 DROP CONSTRAINT 제약조건_이름;

테이블의 삭제

DROP TABLE 테이블_이름;

삭제할 테이블을 참조하는 테이블이 있다면 삭제가 수행되지 않는다.

따라서 삭제하고자 하는 테이블을 참조하는 외래 키 제약조건을 먼저 삭제해야 한다.

NOTE. 오라클에서는 [CASCADE CONSTRAINTS]를 추가하여 관련된 외래 키 제약조건을 함께 삭제할 수도 있다.


키워드 연습 문제

1) CREATE TABLE 게시글에서 생성한 고객 테이블에 가입날짜 속성을 추가해보자

2) 1번에서 추가한 고객 테이블의 가입날짜 속성을 삭제해보자.

3) 고객 테이블에 20세 이상의 고객만 가입할 수 있다는 데이터 무결성 제약조건 CHK_AGE를 추가해보자.

4) 3번에서 추가한 고객 테이블에 20세 이상의 고객만 가입할 수 있다는 데이터 무결성 제약조건을 삭제해보자.

5) CREATE TABLE 게시글에서 생성한 배송업체 테이블을 삭제해보자.

 

ref. IT CookBook, 데이터베이스 개론(2판): 기초 개념부터 빅데이터까지 김연희