오라클에서 제공하는 객체를 수정하는 구문이다.
<테이블 수정>
[표현법]
ALTER TABLE 테이블명 수정할 내용;
* 수정할 내용
1) 컬럼 추가/수정/삭제
2) 제약 조건 추가/삭제 —> 수정은 불가능(삭제한 후 새로 추가해야 한다.)
3) 테이블명 / 컬럼명 / 제약조건명 변경
1-1) 컬럼 추가(ADD) : ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [DEFAULT 기본값]
*기존 테이블 형태
1-2) 컬럼 수정(MODIFY)
- 데이터 타입 변경: ALTER TABLE 테이블명 MODIFY 컬럼명 변경할 데이터타입;
- 기본값 변경: ALTER TABLE 테이블명 MODIFY 컬럼명 DEFAULT 변경할 기본값;
기존 테이블 형태
변경 테이블 형태
1-3) 컬럼 삭제 (DROP COLUMN) : ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
- 데이터 값이 기록되어 있어도 같이 삭제된다. (단, 삭제된 컬럼 복구는 불가능)
- 테이블에는 최소 한 개의 컬럼은 존재해야 한다.
- 참조되고 있는 컬럼이 있다면 삭제가 불가능하다.
2-1) 제약조건 추가
- PRIMARY KEY : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] PRIMARY KEY(컬럼명);
- FOREIGN KEY : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] FOREIGN KEY(컬럼명) REFERENCES 테이블명 [(컬럼명)];
- UNIQUE : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] UNIQUE(컬럼명);
- CHECK : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] CHECK(컬럼에 대한 조건);
- NOT NULL : ALTER TABLE 테이블명 MODIFY [CONSTRAINT 제약조건명] 컬럼명 NOT NULL;
*기존 테이블 형태
2-2) 제약조건 삭제
NOT NULL : ALTER TABLE 테이블명 MODIFY 컬럼명 NULL;
나머지 : ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
3-1) 컬럼명 변경 : ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경할컬럼명;
3-2) 제약조건명 변경 : ALTER TABLE 테이블명 RENAME CONSTRAINT 기존제약조건명 TO 변경할제약조건명;
3-3) 테이블명 변경
- ALTER TABLE 테이블명 RENAME TO 변경할테이블명;
- RENAME 기존테이블명 TO 변경할테이블명;
- DEPT_COPY 테이블의 이름을 DEPT_TEST로 변경
오라클에서 제공하는 객체를 삭제하는 구문이다.
* 단, 참조되고 있는 부모 테이블은 함부로 삭제가 되지 않는다.
만약에 삭제하고자 한다면 자식 테이블을 먼저 삭제한 후 부모테이블을 삭제하거나 부모 테이블을 삭제할 때 제약조건도 함께 삭제한다.
1) 자식 테이블을 먼저 삭제한 후 부모 테이블을 삭제하는 방법
2) 부모 테이블을 삭제할 때 제약조건도 함께 삭제하는 방법