본문 바로가기
Oracle

[Oracle] 테이블 컬럼 추가, 수정, 삭제하기

by 상후 2021. 8. 15.
728x90
반응형

 

오라클 테이블 컬럼 추가, 수정, 삭제하기

테이블은 한 번 설계한 대로 쭉 사용되지 않는다.. (나는 그렇다..)

사용 중인 테이블에 컬럼을 추가하거나, 수정하거나, 삭제해야 할 때가 있다.

그 방법을 정리합니다. [사용 버전 : Oracle 11g]

 

컬럼 추가하기(ADD Column)

 

-- 오라클 테이블 컬럼 추가하기 - 단일
ALTER TABLE SAMPLE_TABLE ADD
(
	NAME   VARCHAR2(10)
);

-- 오라클 테이블 컬럼 추가하기 - 여러 컬럼
ALTER TABLE SAMPLE_TABLE ADD
(
	NAME   VARCHAR2(10),
	AGE    NUMBER(2)
);

 

위와 같이 컬럼을 간단하게 추가할 수 있다.

추가적으로 컬럼을 추가할 때, DEFAULT 값이나 NOT NULL과 같은 제약조건도 함께 설정할 수 있다.

 

-- DEFAULT 값 추가하기
ALTER TABLE SAMPLE_TABLE ADD
(
	NAME   VARCHAR2(10)	DEFAULT '이름'
);

-- NOT NULL 추가하기
ALTER TABLE SAMPLE_TABLE ADD
(
	NAME   VARCHAR2(10)	DEFAULT '이름'	NOT NULL,
	AGE    NUMBER(2)
);

 

NOT NULL 제약조건 추가 시 유의할 점

DEFAULT 값과 함께 설정되어야 한다는 점이다.

 

이유는 생각해보면 당연하다.

사용 중이던 테이블에 컬럼을 NOT NULL 조건 없이 컬럼을 추가하면 기존 데이터들에 추가된 컬럼은 NULL로 들어간다.

 

하지만 NOT NULL로 추가되는데, 기존에 있는 데이터에 NULL을 넣을 수 없다.(NOT NULL 이기 때문)

그렇기 때문에 DEFAULT 값을 주어서 NULL 값이 안 들어가게 한 후 NOT NULL 조건을 걸 수 있는 것이다.

 

위 컬럼 추가 쿼리에서 NOT NULL DEFAULT '이름'  이렇게

NOT NULL과 DEFAULT 순서가 바뀌어도 에러가 발생하니 유의!

 

컬럼 수정하기(Modify Column)

 

-- 컬럼 수정하기, 단일
ALTER TABLE SAMPLE_TABLE MODIFY
(
	NAME	VARCHAR2(20)
);

-- 컬럼 수정하기, 여러 컬럼
ALTER TABLE SAMPLE_TABLE MODIFY
(
	NAME	VARCHAR2(20),
	AGE	NUMBER(5)
);

 

컬럼 수정 시 주의할 점

기존 데이터 타입의 크기보다 작게는 변경할 수 없습니다.

기존 데이터들이 존재하기 때문에 작게 변경하면 데이터들의 정확성이 무너지니까 안 되는 것 같습니다.

 

컬럼 삭제하기(Drop Column)

 

-- 컬럼 삭제하기, 단일
ALTER TABLE SAMPLE_TABLE DROP COLUMN COL_NAME;

-- 컬럼 삭제하기, 여러 컬럼
ALTER TABLE SAMPLE_TABLE DROP
(
	NAME,
	AGE
);

 

컬럼 단일 삭제 시 DROP COLUMN 으로 작성

컬럼 다중 삭제 시 DROP (COL1, COL2) 으로 작성합니다.

 

 

 

 

 

 

728x90
반응형

댓글