">

  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;

+ Recent posts