ALTER TABLE은 테이블의 스키마를 변경할 수 있도록 해주는 유용한 명령어입니다. 테이블 스키마란 쉽게 말하면 테이블의 구조라고 설명 드릴 수 있겠네요. 이 스키마라는 것은 논리적 스키마와 물리적 스키마로 분리해서 부릅니다. 데이터베이스 설명 페이지는 아니니 설명은 이쯤에서 마무리 할게요.
좀 예전에는 각 데이터베이스 회사마다 사용되는 쿼리가 많이 달랐습니다. 하지만 표준화를 진행하면서 많이 비슷해 졌어요. ALTER TABLE 도 크게 다른 부분 없습니다.
1. 테이블에 새로운 컬럼 추가하기
형식은 ALTER TABLE [테이블명] ADD COLUMN [추가할 컬럼명][추가할 컬럼 데이터형] 입니다.
mysql>ALTER TABLE user_info ADD COLUMN name varchar(20) not null;
2. 테이블 컬럼 타입 변경하기
형식은 ALTER TABLE [테이블명] MODIFY COLUMN [변경할 컬럼명][변경할 컬럼 타입] 입니다.
mysql>ALTER TABLE user_info MODIFY COLUMN name varchar(10) not null;
3. 테이블 컬럼 이름 변경하기
형식은 ALTER TABLE [테이블명] CHANGE COLUMN [기존 컬럼 명][변경할 컬럼 명][변경할 컬럼 타입] 입니다.
mysql>ALTER TABLE user_info CHANGE COLUMN name nickname varchar(20) not null;
4. 테이블 컬럼 삭제하기
형식은 ALTER TABLE [테이블명] DROP COLUMN [삭제할 컬럼 명] 입니다.
mysql>ALTER TABLE user_info DROP COLUMN nickname;
5. 테이블 컬럼에 인덱스 설정하기
형식은 ALTER TABLE [테이블명] ADD INDEX 인덱스명(인덱스 설정할 컬럼1, 인덱스 설정할 컬럼2, ...) 입니다.
mysql>ALTER TABLE user_info ADD INDEX userindex(id);
6. 설정된 인덱스 삭제하기
형식은 ALTER TABLE [테이블명] DROP INDEX [인덱스명] 입니다.
mysql>ALTER TABLE user_info DROP INDEX userindex;
인덱스가 잘 제거 되었는지 확인하시려면,
mysql>SHOW INDEX FROM user_info;
이렇게 확인이 가능합니다.
7. Primary Key 설정하기
형식은 ALTER TABLE [테이블명] ADD PRIMARY KEY (Key 설정할 컬럼 명1, Key 설정할 컬럼 명 2, ...) 입니다.
mysql> ALTER TABLE user_info ADD PRIMARY KEY (id, nickname);
8. Primary Key 삭제하기
형식은 ALTER TABLE [테이블명] DROP PRIMARY KEY 입니다.
mysql> ALTER TABLE user_info DROP PRIMARY KEY;
9. 테이블 이름 바꾸기
형식은 ALTER TABLE [원본 테이블] RENAME [새로운 테이블 이름] 입니다.
mysql> ALTER TABLE user_info RENAME vip_user_info;
'프로그래밍 > DB' 카테고리의 다른 글
MySQL DB/테이블 사이즈 확인 및 테이블 최고 사이즈 확인하기 (3) | 2017.02.17 |
---|---|
MySQL ERD 생성하기 ERWin에서... (0) | 2016.10.11 |
Mac(맥)에 MySQL 설치하기 (0) | 2016.08.10 |