LearnApplyShare

[mySQL] 테이블 수정 쿼리

April 16, 2018 - [mysql, query]

이름 바꾸기

ALTER TABLE tablename RENAME bbs;

컬럼 속성 수정

ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

특정 컬럼 인코딩 수정

ALTER TABLE HUMSD02 MODIFY orgFilename varchar(100) character set utf8 default NULL;
ALTER TABLE HUMSD02 MODIFY orgFilename varchar(100) character set euckr default NULL;

컬럼 이름 바꾸기

ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;
  • CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다

컬럼 추가

ALTER TABLE bbs ADD name VARCHAR(10);
  • ALTER TABLE tablename ADD 컬럼이름 컬럼속성

특정 컬럼 뒤에 새로운 컬럼 추가

ALTER TABLE bbs ADD newcol VARCHAR(10) AFTER num;
  • num 컬럼 뒤에 newcol 컬럼 추가

외래키 추가

ALTER TABLE HUMSD02 ADD FOREIGN KEY (resNo) REFERENCES HUMSD03(resNo) ON DELETE CASCADE;
  • 타 테이블의 참조 당하는 키는 반드시 유일 키이어야 함

컬럼 삭제

ALTER TABLE bbs DROP colname;

기존 컬럼을 지우고 맨 앞에 컬럼 추가

ALTER TABLE bbs DROP newcol, ADD newcol VARCHAR(10) FIRST;
  • 맨 앞에 추가하려면 FIRST를 사용한다

PRIMARY KEY 속성 삭제

ALTER TABLE test DROP PRIMARY KEY;

이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때

ALTER TABLE test MODIFY a CHAR(1) NOT NULL;
  • PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다.

Ref.

http://kwonnam.pe.kr/wiki/database/mysql/alter_table