| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- PARSEINT
- 도메인
- 1단계
- 자바
- 프로그래머스
- SQL
- Math.min
- 참조형
- 알고리즘
- oracle
- 디비
- Linux
- 배열
- substring
- 코딩테스트
- 1레벨
- toLowerCase
- programmers
- 짝수
- string
- 데이터베이스
- StringBuffer
- 문자열
- 오라클
- 1level
- 1lv
- Integer
- Math.max
- 코테
- Java
- Today
- Total
웹 프로그래밍
컬럼 추가, 삭제, 수정, 변경(ALTER) - Oracle 본문


아래 예제는 위 사진의 테이블을 사용했습니다.
▶ 테이블에 컬럼을 추가하는 방법(ADD)
1. 문법
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 DEFAULT ''; // DEFAULT는 생략 가능
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 DEFAULT '' NOT NULL; // NOT NULL은 생략 가능
2. 예제
1) ALTER TABLE TB_TEST ADD COL_TEST VARCHAR2(10);

- 컬럼이 추가되면서 기존 데이터는 default로 null 값이 들어간다.
2) ALTER TABLE TB_TEST ADD COL_TEST VARCHAR2(10) DEFAULT 'test';

- 컬럼이 추가되면서 기존 데이터는 default로 설정한 default 값이 들어간다.
3) ALTER TABLE TB_TEST ADD COL_TEST VARCHAR2(10) DEFAULT 'test' NOT NULL;

- 기존 데이터는 2번과 동일하지만 컬럼 추가 후 새롭게 데이터가 추가될 때 null이 들어갈 수 없다.
4) ALTER TABLE TB_TEST ADD COL_TEST VARCHAR2(10) NOT NULL;

- default를 설정하지 않으면 기존 데이터는 null 값이 들어가는데 NOT NULL 옵션을 사용했을 경우
테이블에 데이터가 없으면 상관없지만 1개 이상이라도 있을 경우 에러가 발생한다.
▶ 테이블에 컬럼을 삭제하는 방법(DROP)
1. 문법
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
2. 예제
1) ALTER TABLE TB_TEST DROP COLUMN COL_NUMBER;

- 기존에 NULL 또는 임의의 값이 들어있어도 해당 컬럼을 삭제한다.
▶ 테이블에 컬럼을 수정하는 방법(MODIFY)
1. 문법
ALTER TABLE 테이블명 MODIFY(컬럼명 데이터타입);
2. 예제
1) ALTER TABLE TB_TEST MODIFY(COL_STRING VARCHAR2(20));

- 기존 데이터 보다 큰 경우 상관없지만 1개의 데이터라도 작은 경우가 있다면 에러가 발생한다.

2) ALTER TABLE TB_TEST MODIFY(COL_STRING NUMBER(10));

- 기존에 데이터가 없으면 데이터 타입이 변경되지만 데이터가 1개 이상일 경우 에러가 발생한다.
▶ 테이블에 컬럼을 수정하는 방법(RENAME)
1. 문법
ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 변경할컬럼명;
2. 예제
1) ALTER TABLE TB_TEST RENAME COLUMN COL_STRING TO COL_STRING2;

'DB(SQL) > oracle' 카테고리의 다른 글
| OVER(), PARTITION BY - Oracle (0) | 2024.05.28 |
|---|---|
| 상위 데이터 조회(Rownum, Top) - Oracle, Mssql (0) | 2023.02.23 |
| 시퀀스(SEQUENCE) - Oracle (0) | 2023.02.05 |
| 트리거(TRIGGER) - ORACLE DB (0) | 2021.09.28 |
| 프로시저(Procedure), 함수 - ORACLE DB (0) | 2021.09.28 |