-
[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제 (ALTER)º Database º/Oracle 2023. 7. 15. 16:49
오라클 DB의 테이블을 변경하는 방법에 대해 알아보겠습니다.
테이블을 변경할 때는
ALTER TABLE 라는 명령어를 사용하게 됩니다.
ALTER TABLE [테이블명] 이 기본 구조이고
그 뒤에, 컬럼을 수정하거나 삭제하느냐에 따라 MODIFY 명령어를 붙이느냐, ADD 나 DROP 등을 붙이느냐가 달라집니다.
1. 테이블 컬럼 추가하기 (ALTER TABLE ADD)
ALTER TABLE [테이블명] ADD 컬럼명 데이터타입(길이);
( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(15) 타입으로 추가할 때
-> ALTER TABLE USER ADD USER_NAME VARCHAR2(15);
2. 테이블 컬럼 수정하기 (ALTER TABLE MODIFY)
ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입(길이)];
( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(10) 타입으로 수정할 때
-> ALTER TABLE USER MODIFY USER_NAME VARCHAR2(10);
3. 테이블 컬럼명 수정하기 (ALTER TABLE RENAME COLUMN TO)
ALTER TABLE [테이블명] RENAME COLUMN [변경전 컬럼명] TO [변경후 컬럼명];
( EX ) USER라는 테이블에 USER_NAME이라는 컬럼명을 USER_ID 컬럼명으로 수정할 때
-> ALTER TABLE USER RENAME COLUMN USER_NAME TO USER_ID;
4. 테이블 컬럼 삭제하기 (ALTER TABLE DROP COLUMN)
ALTER TABLE [테이블명] DROP COLUMN [삭제할 컬럼명];
( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 삭제할 때
-> ALTER TABLE USER DROP COLUMN USER_NAME;
5. 컬럼 기본값 및 NULL 설정 변경하기 (ALTER TABLE MODIFY)
5-1) 테이블 기본(DEFAULT) 값 설정
ALTER TABLE [테이블명] MODIFY [컬럼명] DEFAULT [기본값];
( EX ) USER 테이블 USER_NAME이라는 컬럼에 'KIM'이라는 기본값을 설정할 때
-> ALTER TABLE USER MODIFY USER_NAME DEFAULT 'KIM';
5-2) 테이블 기본(DEFAULT) 값 삭제
ALTER TABLE [테이블명] MODIFY [컬럼명] DEFAULT NULL;
( EX ) USER 테이블 USER_NAME이라는 컬럼에 기본값을 삭제할 때
-> ALTER TABLE USER MODIFY USER_NAME DEFAULT NULL;
5-3) 테이블 NOT NULL 설정
ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입(길이)] NOT NULL;
( EX ) USER 테이블 USER_NAME이라는 컬럼에 공백을 허용하지 않을 때
-> ALTER TABLE USER MODIFY USER_NAME VARCHAR2(15) NOT NULL;
5-4) 테이블 NULL 설정
ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입(길이)] NULL;
( EX ) USER 테이블 USER_NAME이라는 컬럼에 공백을 허용할 때
-> ALTER TABLE USER MODIFY USER_NAME VARCHAR2(15) NULL;
5-5) 기본값 + 테이블 NULL 설정
ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입(길이)] DEFAULT [기본값] NULL;
( EX ) USER 테이블 USER_NAME이라는 컬럼에 공백을 허용할 때
-> ALTER TABLE USER MODIFY USER_NAME VARCHAR2(15) NOT NULL;
6. 주의사항
- 데이터 타입(VARCHAR2, NUMBER 등) 을 변경하는 경우에는, 해당 컬럼의 데이터를 모두 비워야 변경이 가능합니다.
임시로 temp컬럼을 하나 생성하여 temp컬럼에 잠시 데이터를 옮겨놓고,
원래 컬럼의 데이터를 모두 비운 후에 데이터 타입을 변경하고 temp컬럼의 데이터들을 다시 원래 컬럼으로 옮겨주면 됩니다.
'º Database º > Oracle' 카테고리의 다른 글
[데이터베이스] 서브쿼리 (중첩질의), 셀프조인, left(right) outer join 정리노트 (0) 2023.05.15 [데이터베이스] Oracle 서점관리시스템 만들기 연습하기 (0) 2023.04.22 [데이터베이스] Oracle DML 자료의 추가, 조회, 수정, 삭제 (0) 2023.04.22 [데이터베이스] Oracle의 특징과 데이터베이스 명령어의 종류 (0) 2023.04.18