ALTER
ALTER
MySQL에서는 다음과 같은 ALTER 문을 사용하여 데이터베이스와 테이블의 내용을 수정할 수 있습니다.
1. ALTER DATABASE
2. ALTER TABLE
데이터베이스 수정
ALTER DATABASE 문은 데이터베이스의 전체적인 특성을 수정할 수 있게 해줍니다.
이러한 데이터베이스의 특성은 데이터베이스 디렉터리의 db.opt 파일에 저장되어 있습니다.
다음과 같은 구문을 통해 데이터베이스의 문자 집합이나 콜레이션을 변경할 수 있습니다.
문법
1. ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름
2. ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름
다음 예제는 Hotel 데이터베이스의 문자 집합과 콜레이션을 변경하는 예제입니다.
예제
ALTER DATABASE Hotel CHARACTER SET=euckr_bin COLLATE=euckr_korean_ci;
자주 사용되는 대표적인 CHARACTER SET은 다음과 같습니다.
1. utf8 : UTF-8 유니코드를 지원하는 문자셋 (1~3바이트)
2. euckr : 한글을 지원하는 문자셋 (1~2바이트)
또한, 자주 사용되는 대표적인 COLLATE는 다음과 같습니다.
1. utf8_bin
2. utf8_general_ci (기본 설정)
3. euckr_bin
4. euckr_korean_ci
테이블 수정
ALTER TABLE 문은 테이블에 필드를 추가, 삭제하거나 필드의 타입을 변경할 수 있게 해줍니다.
1. ADD
2. DROP
3. MODIFY COLUMN
새로운 필드 추가
ALTER TABLE 문과 함께 ADD 문을 사용하면, 테이블에 필드를 추가할 수 있습니다.
문법
ALTER TABLE 테이블이름 ADD 필드이름 필드타입
다음 예제는 Reservation 테이블에 타입이 INT인 Phone 필드를 추가하는 예제입니다.
실행 결과
MySQL 수업 예제에서 사용되는 Reservation 테이블과 Customer 테이블은 다음과 같습니다.
기존 필드의 삭제
ALTER TABLE 문과 함께 DROP 문을 사용하면, 테이블의 필드를 삭제할 수 있습니다.
문법
ALTER TABLE 테이블이름 DROP 필드이름
다음 예제는 Reservation 테이블에서 RoomNum 필드를 삭제하는 예제입니다.
실행 결과
필드 타입 변경
ALTER TABLE 문과 함께 MODIFY COLUMN 문을 사용하면, 테이블의 필드 타입을 변경할 수 있습니다.
문법
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입
다음 예제는 Reservation 테이블의 ReserveDate 필드 타입을 DATE에서 VARCHAR(20)으로 변경하는 예제입니다.