📁 ALTER
객체를 수정하는 구문
ALTER을 통해 DDL을 진행하면 트렌젝션이 완료되기 때문에 ROLLBACK 불가능
📁 ALTER TABLE
테이블을 생성한 후 수정하는 구문
1) 컬럼 추가
ADD
자료형, 제약조건, 디폴트 순서를 지켜야 한다.
ALTER TABLE 테이블명
ADD (컬럼명 자료형(크기) 제약조건 DEFAULT 디폴트값);
,를 통해 여러개의 컬럼을 추가할 수 있음
ALTER TABLE 테이블명
ADD (컬럼명 자료형 제약조건 DEFAULT 디폴트값,
컬럼명 자료형 제약조건 DEFAULT 디폴트값);
2) 컬럼 삭제
DROP COLUMN
테이블에는 하나 이상의 컬럼이 남아있어야 한다.
ALTER TABLE 테이블명
DROP COLUMN 컬럼명;
여러개의 컬럼을 삭제할 시 ,를 구분자로 컬럼명을 입력하고 ()로 감싼다.
ALTER TABLE 테이블명
DROP COLUMN (컬럼명, 컬럼명, ...);
3) 컬럼 이름 변경
RENAME COLUMN TO
다른 작업과 결합할 수 없다.
ALTER TABLE 테이블명
RENAME COLUMN 컬럼명 TO 새로운 컬럼명;
4) 컬럼 변경
MODIFY
컬럼의 자료형, 크기, 디폴트값을 변경할 수 있다.
- 디폴트값을 변경할 경우 이미 삽입된 데이터의 디폴트값은 변경되지 않음
- 자료형을 변경할 컬럼은 비어있어야 함
- 자료형의 크기는 기존 크기보다 작게 수정할 수 없음
ALTER TABLE 테이블명
MODIFY 컬럼명 자료형(크기) 제약조건 DEFAULT 디폴트값;
5) 제약조건 추가
ADD CONSTRAINT
테이블 레벨에서 제약조건을 추가하는 방법
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
MODIFY CONSTRAINT
컬럼 레벨에서 제약조건을 추가하는 방법
ALTER TABLE 테이블명
MODIFY 컬럼명 CONSTRAINT 제약조건명 제약조건;
6) 제약조건 삭제
DROP CONSTRAINT
제약조건명을 통해 삭제
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;
NOT NULL의 경우 다음과 같이 삭제 가능
ALTER TABLE 테이블명
MODIFY 컬럼명 NULL;
7) 제약조건 이름 변경
RENAME CONSTRAINT TO
ALTER TABLE 테이블명
RENAME CONSTRAINT 제약조건명 TO 새로운 제약조건명;