자바 웹 개발자가 될거야/DB

[Oracle] 테이블 수정하기 / ALTER문

whitz 2021. 12. 7. 17:36

 

< 테이블 수정하기 >

 

 

- ALTER TABLE 테이블명 ALTER/MODIFY/DROP 조건; 이 기본틀이다

- 테이블 만든 후 특정 컬럼을 수정하고 싶을 때 사용

 

 

 

① 컬럼 추가

 

- 컬럼 추가, 기존 컬럼에 제약조건 추가도 가능

- 가장 마지막 컬럼으로 추가됨

- 컬럼 새로 추가하게 되면 데이터값은 NULL로 배정

 

ALTER TABLE 테이블명
ADD 조건;

 

ALTER TABLE dept80
ADD (job_id VARCHAR2(9));

 

ALTER ADD 결과

 

 

 

② 컬럼 수정

 

- 데이터타입, 컬럼 사이즈, Default값, 제약조건 추가 등의 수정가능하다

- 사이즈를 늘리는 건 언제든지 상관없음 ( 단, 사이즈를 줄이는건 이미 저장된 컬럼값에 의해 가능 불가능 )

 

ALTER TABLE 테이블명
MODIFY 조건;

 

ALTER TABLE dept80
MODIFY (last_name VARCHAR2(30));

 

ALTER MODIFY 결과

 

③ 컬럼 삭제

 

- 테이블로부터 필요없는 컬럼을 삭제

- 컬럼 위치는 상관없음

- 컬럼 삭제할거면 DROP 뒤에 column이라고 명시해줘야함

 

ALTER TABLE 테이블명
DROP 조건;

 

ALTER TABLE dept80
DROP column job_id;

 

 

④ 테이블 생성 후 제약조건 추가

 

- 컬럼레벨 문법

  · PK, FK, UK, CK, NN

 

ALTER TABLE 테이블명
MODIFY 컬럼명 CONSTRAINT 제약조건명 제약조건유형;

 

- 테이블레벨 문법

  · PK, FK, UK, CK

 

ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건유형(컬럼명);

 

 

⑤ 제약조건 삭제

 

- 함께 사용할 수 있는 옵션 : cascade

 

ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명[cascade];

 

 

 

※ 데이터 사전

 

- 자신 소유의 테이블이 뭐가 있는지 / 제약조건이 뭐가 있는지 확인가능

SELECT table_name FROM user_tables;
SELECT table_name FROM user_constraints;