[MySQL || MariaDB] ALTER TABLE 문법 총 정리
문법
문법에 들어가기 앞서, 공통 테이블 예시
CREATE TABLE ex_table (
id INT,
sFirst VARCHAR(32),
sThird VARCHAR(32),
nSecond INT,
sFifth VARCHAR(32)
)
컬럼 추가 (Add)
nSixth INT형 컬럼 추가
ALTER TABLE [테이블명] ADD [컬럼명] [타입]
ALTER TABLE ex_table ADD COLUMN nSixth INT;
결과
특정 컬럼 뒤에 추가 (Add)
sThird 컬럼 뒤에 sFourth VARCHAR형 컬럼 추가
ALTER TABLE [테이블명] ADD COLUMN [추가할컬럼명] [컬럼타입] DEFAULT [기본값] [컬럼위치]
ALTER TABLE ex_table ADD COLUMN sFourth varchar(32) DEFAULT NULL AFTER sThird;
결과
컬럼 타입 변경 (Modify)
sFifth 컬럼 VARCHAR(32) -> VARCHAR(55)로 변경
ALTER TABLE [테이블명] MODIFY [컬럼명] [타입]
ALTER TABLE ex_table MODIFY COLUMN sFifth VARCHAR(55);
결과
여러 개 컬럼 한번에 변경 (Modify)
nSixth 컬럼 INT(11) -> INT(6) , sFirst 컬럼 VARCHAR(32) -> VARCHAR(11)
ALTER TABLE ex_table
MODIFY COLUMN nSixth INT(6),
MODIFY COLUMN sFirst VARCHAR(11);
결과
컬럼 순서변경 (Modify)
sFirst 컬럼 뒤에 nSecond 컬럼 배치 하기
ALTER TABLE [테이블명] MODIFY [순서변경 할 컬럼명] [컬럼타입] AFTER [컬럼위치];
ALTER TABLE ex_table MODIFY nSecond int AFTER sFirst;
결과
컬럼 이름까지 변경 (Change)
nSecond 컬럼 이름 변경 -> sSecond , 타입 변경 INT -> VARCHAR(22)
ALTER TABLE [테이블명] CHANGE [변경 전 컬럼명] [변경 후 컬럼명] [컬럼타입]
ALTER TABLE ex_table CHANGE COLUMN nSecond sSecond VARCHAR(22);
결과
주의 : 기존 데이터가 유실될수 있으므로, 컬럼의 크기는 늘릴수만 있습니다.
컬럼 삭제 (Drop)
nSixth 컬럼 삭제
ALTER TABLE [테이블명] DROP [컬럼명]
ALTER TABLE ex_table DROP COLUMN nSixth;
결과
Primary Key(PK) 설정
id 컬럼 Primary Key(PK) 추가
ALTER TABLE [테이블명] ADD PRIMARY KEY (Key 설정 컬럼 명01, Key 설정 컬럼 명02)
ALTER TABLE ex_table ADD PRIMARY KEY (id);
결과
Primary Key(PK) 삭제
모든 컬럼 Primary Key(PK) 삭제
ALTER TABLE [테이블명] DROP PRIMARY KEY
ALTER TABLE ex_table DROP PRIMARY KEY;
결과
컬럼 디폴트값 변경
sFirst 컬럼 기본 값을 '첫번째값'으로 설정
ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] SET DEFAULT [기본값]
ALTER TABLE ex_table ALTER COLUMN sFirst SET DEFAULT '첫번째값';
결과
컬럼 디폴트값 삭제
sFirst 컬럼 기본 값을 삭제
ALTER TABLE [테이블명] ALTER [컬럼명] DROP DEFAULT
ALTER TABLE ex_table ALTER sFirst DROP DEFAULT;
결과
컬럼 인덱스 설정
id 컬럼 `pkindex` 인덱스 설정
ALTER TABLE [테이블명] ADD INDEX 인덱스명(인덱스 설정 컬럼01, 인덱스 설정 컬럼02)
ALTER TABLE ex_table ADD INDEX pkindex(id);
결과
컬럼 인덱스 삭제
pkindex 인덱스 삭제
ALTER TABLE [테이블명] DROP INDEX [인덱스명]
ALTER TABLE ex_table DROP INDEX pkindex;
결과
테이블 이름 변경 (RENAME)
테이블 이름 변경 ex_table -> ex_alterTable
ALTER TABLE [테이블명] RENAME [변경 후 테이블명]
ALTER TABLE ex_table RENAME ex_alterTable;
결과
테이블 스토리지 엔진(Storage Engine) 변경
스토리지 엔진 종류 두 가지 : [InnoDB || MyISAM]
ex_alterTable 엔진을 INNODB로 변경
ALTER TABLE [테이블명] ENGINE = [형식]
ALTER TABLE ex_alterTable ENGINE = INNODB
현재 스토리지 엔진 확인 방법
SELECT engine, support FROM information_schema.engines WHERE support='DEFAULT';
예제 파일 제공
'MariaDB' 카테고리의 다른 글
[MySQL || MariaDB] System,SQL ERROR 모음 원인 및 해결 총 정리 (0) | 2020.04.24 |
---|---|
[MySQL || MariaDB] TIMESTAMP와 DATETIME 차이점 총 정리 (0) | 2020.04.19 |
[MySQL || MariaDB] 숫자형 문자 정렬 문제 및 해결(Feat.varchar) (0) | 2020.03.15 |
[MySQL || MariaDB] 여러 테이블 한번에 카운터 하기 (0) | 2020.03.15 |
[MySQL || MariaDB] ORDER BY 특정 값 우선 정렬(feat.FIELD) (2) | 2020.02.29 |