Programming/MySQL

[MySQL] ALTER

arajo 2022. 9. 7. 02:54
728x90

ALTER

MySQL에서는 다음과 같은 ALTER 문을 사용하여 데이터베이스와 테이블의 내용을 수정할 수 있다.

  • ALTER DATABASE
  • ALTER TABLE

데이터베이스 수정

ALTER DATABASE 문은 데이터베이스의 전체적인 특성을 수정할 수 있게 해준다.

이러한 데이터베이스의 특성은 데이터베이스 디렉터리의 db.opt 파일에 저장되어 있다.

다음과 같은 구문을 통해 데이터베이스의 문자 집합이나 콜레이션을 변경할 수 있다.

ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름
ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름
콜레이션(collation)이란 데이터베이스에서 검색이나 정렬과 같은 작업을 할 때 사용하는 비교를 위한 규칙의 집합을 의미한다.

다음 예제는 Hotel 데이터베이스의 문자 집합과 콜레이션을 변경하는 예제다.

ALTER DATABASE Hotel CHARACTER SET=euckr_bin COLLATE=euckr_korean_ci;

자주 사용되는 대표적인 CHARACTER SET은 다음과 같다.

  • utf8 : UTF-8 유니코드를 지원하는 문자셋 (1~3바이트)
  • euckr : 한글을 지원하는 문자셋 (1~2바이트)

또한, 자주 사용되는 대표적인 COLLATE는 다음과 같다.

  • utf8_bin
  • utf8_general_ci (기본 설정)
  • euckr_bin
  • euckr_korean_ci
COLLATE에서 ci는 case-insensitive를 의미하며, 대소문자를 구분하지 않게 설정된다.

테이블 수정

ALTER TABLE 문은 테이블에 필드를 추가, 삭제하거나 필드의 타입을 변경할 수 있게 해준다.

  • ADD
  • DROP
  • MODIFY COLUMN

새로운 필드 추가

ALTER TABLE 문과 함께 ADD 문을 사용하면, 테이블에 필드를 추가할 수 있다.

ALTER TABLE 테이블이름 ADD 필드이름 필드타입

다음 예제는 Reservation 테이블에 타입이 INT인 Phone 필드를 추가하는 예제다.

ALTER TABLE Reservation
ADD Phone INT;

기존 필드의 삭제

ALTER TABLE 문과 함께 DROP 문을 사용하면, 테이블의 필드를 삭제할 수 있다.

ALTER TABLE 테이블이름 DROP 필드이름

다음 예제는  Reservation 테이블에서 RoomNum 필드를 삭제하는 예제다.

ALTER TABLE Reservation
DROP RoomNum;

필드 타입 변경

ALTER TABLE 문과 함께 MODIFY COLUMN 문을 사용하면, 테이블의 필드 타입을 변경할 수 있다.

ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입

다음 예제는 Reservation 테이블의 ReserveDate 필드 타입을 DATE에서 VARCHAR(20)으로 변경하는 예제다.

ALTER TABLE Reservation
MODIFY COLUMN ReserveDate VARCHAR(20);