MySQL에서 ALTER문은 데이터베이스(Dababase)와 테이블(Table)의 전체적인 특성 및 내용을 수정할 수 있는 SQL(Structured Query Language) Query문입니다.
- 데이터베이스의 CHARACTER SET과 COLLATE를 변경할 수 있습니다.
- 테이블의 컬럼을 추가(ADD), 삭제(DROP), 수정(MODIFY COLUMN)할 수 있으며, 제약 조건을 변경하실 수 있습니다.
MySQL ALTER 문 Database, Table 수정/변경
1. ALTER DATABASE
⊙ 데이터베이스 CHARACTER SET과 COLLATE 변경
- 데이터베이스에서 CHARACTER SET(문자 집합)은 문자와 그 문자들을 코드화한 인코딩들의 조합입니다. 모든 CHARACTER SET은 적어도 1개 이상의 COLLATE를 가지고 있어야 합니다.
- 가장 널리 사용되고 있는 CHRACTER SET은 utf8(유니코드를 지원)과 euckr(한글 지원) 문자셋입니다.
- ALTER DATABASE [데이터베이스명] CHARACTER SET = [문자셋명]
- COLLATE(콜레이션)은 문자열을 비교, 정렬하기 위하여 정의된 규칙들의 집합입니다. 어떻게 문자열을 비교하고 정렬할지를 정해놓은 규칙들의 집합으로 CHARACTER SET에 속합니다.
- 가장 널리 사용되고 있는 COLLATE는 utf8_general_ci(기본 설정), euckr_korean_ci 콜레이션입니다.
- ALTER DATABSE [데이터베이스명] COLLATE = [콜레이션명]
CHARACTER SET과 COLLATE는 주로 동시에 작성하는 경우가 많습니다.
/* 예제 */
ALTER DATABASE sample CHARACTER SET = utf8 COLLATE = utf8_general_ci;
2. ALTER TALBE
⊙ 테이블 컬럼 추가(ADD)
- ALTER문에서 ADD 명령어는 테이블을 생성할 때 추가하지 못한 컬럼이나 다른 용도의 컬럼이 필요한 경우 테이블의 새로운 컬럼을 추가할 수 있습니다.
- ALTER TABLE [테이블명] ADD [컬럼명] [컬럼타입]
/* 예제 */
ALTER TABLE sample ADD address VARCHAR(100);
⊙ 테이블 컬럼 삭제(DROP)
- ALTER문에서 DROP 명령어는 테이블의 컬럼을 삭제할 수 있습니다.
- ALTER TABLE [테이블명] DROP [컬럼명]
/* 예제 */
ALTER TABLE sample DROP address;
⊙ 테이블 컬럼 수정(MODIFY COLUMN)
- ALTER문에서 MODIFY COLUMN 명령어는 테이블의 컬럼 타입 및 제약 조건 등을 수정할 수 있습니다.
- 여러 개의 컬럼을 동시에 변경할 수 있습니다.
- ALTER TABLE [테이블명] MODIFY COLUMN [컬럼명1] [컬럼타입1]
- 테이블의 컬럼 제약 조건 변경 방법은 문법이 조금씩 다르므로 아래 링크에 새롭게 포스팅하였습니다.
/* 예제 */
-- INT(11->5)
ALTER TABLE sample MODIFY COLUMN id INT(5);
-- 여러 개 컬럼 동시에 변경 INT(11->5), VARCHAR(10->20)
ATLER TABLE sample
MODIFY COLUMN id INT(5),
MODIFY COLUMN name VARCHAR(20);
⊙ 테이블 컬럼명 변경(CHANGE)
- ALTER문에서 CHANGE는 테이블의 컬럼명을 수정할 수 있습니다.
- ALTER TABLE [테이블명] CHANGE [변경전컬럼명] [변경후컬럼명] [컬럼타입]
/* 예제 */
-- 기존 id 컬럼명을 no 컬럼명으로 변경
ATLER TABLE sample CHANGE no id INT;
3. 참고 자료 링크
이상으로 MySQL에서 데이터베이스 또는 테이블을 수정하는 ALTER문에 대하여 알아보았습니다.
'DataBase > MySQL' 카테고리의 다른 글
MySQL 테이블 존재 여부 확인 방법 (0) | 2022.10.11 |
---|---|
MySQL SELECT문 정리 (DB 데이터 조회) (0) | 2022.10.04 |
MySQL DROP문 정리 (DB와 TABLE 삭제) (0) | 2022.10.03 |
MySQL 테이블 제약 조건 정리 (CONSTRAINT 설정) (0) | 2022.10.01 |
MySQL CREATE문 정리 (DB와 TABLE 생성) (0) | 2022.09.30 |
댓글