alter table 테이블 수정/삭제/변경 > 정보공유

본문 바로가기

정보공유

일반글
MySQL

alter table 테이블 수정/삭제/변경

페이지 정보

게시물QR코드

본문

ALTER TABLE은 테이블의 스키마를 변경할 수 있도록 해주는 유용한 명령어입니다. 테이블 스키마란 쉽게 말하면 테이블의 구조라고 설명 드릴 수 있겠네요. 

이 스키마라는 것은 논리적 스키마와 물리적 스키마로 분리해서 부릅니다. 데이터베이스 설명 페이지는 아니니 설명은 이쯤에서 마무리 할게요.

좀 예전에는 각 데이터베이스 회사마다 사용되는 쿼리가 많이 달랐습니다. 하지만 표준화를 진행하면서 많이 비슷해 졌어요. ALTER TABLE 도 크게 다른 부분 없습니다. 


1. 테이블에 새로운 컬럼 추가하기
형식은 ALTER TABLE [테이블명] ADD COLUMN [추가할 컬럼명][추가할 컬럼 데이터형] 입니다.

ALTER TABLE user_info ADD COLUMN name varchar(20) not null; 

 

2. 테이블 컬럼 타입 변경하기 

형식은 ALTER TABLE [테이블명] MODIFY COLUMN [변경할 컬럼명][변경할 컬럼 타입] 입니다. 

ALTER TABLE user_info MODIFY COLUMN name varchar(10) not null;  

 

3. 테이블 컬럼 이름 변경하기 

형식은 ALTER TABLE [테이블명] CHANGE COLUMN [기존 컬럼 명][변경할 컬럼 명][변경할 컬럼 타입] 입니다. 

ALTER TABLE user_info CHANGE COLUMN name nickname varchar(20) not null; 

 

4. 테이블 컬럼 삭제하기

형식은 ALTER TABLE [테이블명] DROP COLUMN [삭제할 컬럼 명] 입니다.

ALTER TABLE user_info DROP COLUMN nickname; 

 

5. 테이블 컬럼에 인덱스 설정하기

형식은 ALTER TABLE [테이블명] ADD INDEX 인덱스명(인덱스 설정할 컬럼1, 인덱스 설정할 컬럼2, ...) 입니다.

ALTER TABLE user_info ADD INDEX userindex(id); 

 

6. 설정된 인덱스 삭제하기

형식은 ALTER TABLE [테이블명] DROP INDEX [인덱스명] 입니다.

ALTER TABLE user_info DROP INDEX userindex; 

 

인덱스가 잘 제거 되었는지 확인하시려면, 

SHOW INDEX FROM user_info; 

이렇게 확인이 가능합니다.  

 

7. Primary Key 설정하기

형식은 ALTER TABLE [테이블명] ADD PRIMARY KEY (Key 설정할 컬럼 명1, Key 설정할 컬럼 명 2, ...) 입니다.

ALTER TABLE user_info ADD PRIMARY KEY (id, nickname);

 

8. Primary Key 삭제하기

형식은 ALTER TABLE [테이블명] DROP PRIMARY KEY 입니다.

ALTER TABLE user_info DROP PRIMARY KEY;

 

9. 테이블 이름 바꾸기

형식은 ALTER TABLE [원본 테이블] RENAME [새로운 테이블 이름] 입니다.

ALTER TABLE user_info RENAME vip_user_info;

 

그누보드에서 게시판 여분필드를 추가할때에 사용할수있는 쿼리문을 예로 보겠습니다.

 

Example.01 

ALTER TABLE `g5_write_게시판아이디`

ADD `wr_11` VARCHAR( 255 ) NOT NULL ,

ADD `wr_12` VARCHAR( 255 ) NOT NULL ,

ADD `wr_13` VARCHAR( 255 ) NOT NULL ,

ADD `wr_14` VARCHAR( 255 ) NOT NULL ,

ADD `wr_15` VARCHAR( 255 ) NOT NULL ,

ADD `wr_16` VARCHAR( 255 ) NOT NULL ,

ADD `wr_17` VARCHAR( 255 ) NOT NULL ,

ADD `wr_18` VARCHAR( 255 ) NOT NULL ,

ADD `wr_19` VARCHAR( 255 ) NOT NULL ,

ADD `wr_20` VARCHAR( 255 ) NOT NULL ;

 

댓글목록

등록된 댓글이 없습니다.

  • Addr.부산광역시 동구 중앙대로 319, 9층 L4호(초량동, 부산YMCA빌딩) Email. gnuwiz@naver.com
  • BR. 625-68-00172 TRC. 2019-부산해운대-1186 TEL. 0507-1382-2790
All rights reserved.