Study/DB

[MySQL] ALTER TABLE ADD, MODIFY 컬럼 여러개 추가 및 수정

 

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 단일 컬럼 추가 결과
ALTER TABLE 단일 컬럼 추가 결과

 

컬럼 여러개 추가

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';

ALTER TABLE 컬럼 여러개 추가
ALTER TABLE 컬럼 여러개 추가

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;

alter table 컬럼 여러개 수정 결과
alter table 컬럼 여러개 수정 결과

참고로, NULL인 컬럼을 NOT NULL로 바꾸려고 하면 Invalid use of NULL value 에러가 발생합니다.

NOT NULL을 적용하려고 하는 컬럼의 값을 모두 채워주면 됩니다.