ALTER TABLE 쿼리를 사용해서 테이블에 컬럼을 추가하거나 수정하는 방법에 대해 설명드리겠습니다.
컬럼 추가
# 단일 컬럼 추가
ALTER TABLE [테이블명] ADD [컬럼명] [데이터타입] [NOT NULL] [DEFAULT]
ALTER TABLE [테이블명] ADD COLUMN [컬럼명] [데이터타입] [NOT NULL] [DEFAULT]
# 여러 컬럼 추가
ALTER TABLE [테이블명]
ADD COLUMN [컬럼명1] [데이터타입] [NOT NULL] [DEFAULT],
ADD COLUMN [컬럼명2] [데이터타입] [NOT NULL] [DEFAULT],
...
컬럼 여러개를 추가할 때는 쉼표로 구분하면 됩니다.
예제
단일 컬럼 추가
alter table tb_1 add column_1 varchar(10);
# add, add column 결과 같음
alter table tb_1 add column column_2 varchar(10);
컬럼 여러개 추가
alter table tb_1
add column column_3 varchar(10),
add column column_4 varchar(20) NOT NULL,
add column column_5 varchar(30) NOT NULL DEFAULT 'default';
NOT NULL일때 기본값을 설정 안하면 빈 값으로 들어갑니다.
컬럼 수정
# 데이터 타입 변경
ALTER TABLE [테이블명] MODIFY COLUMN [컬럼명] [변경할 데이터타입]
# NULL 허용 여부 변경
ALTER TABLE [테이블명] MODIFY COLUMN [컬럼명] [NOT NULL | NULL]
# 기본값 변경
ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] SET DEFAULT [기본값]
# 컬럼명 변경
ALTER TABLE [테이블명] RENAME COLUMN [기존 컬럼명] TO [새 컬럼명]
예제
# 여러 컬럼 한번에 수정
alter table tb_1
modify column column_1 int,
modify column column_2 varchar(10) not null default '-',
alter column column_3 set default 'default_3',
rename column column_4 to column_4_1;
참고로, NULL인 컬럼을 NOT NULL로 바꾸려고 하면 Invalid use of NULL value 에러가 발생합니다.
NOT NULL을 적용하려고 하는 컬럼의 값을 모두 채워주면 됩니다.