[SQL] DDL : ALTER

📁 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 새로운 제약조건명;