ALTER 문에 대해서 좀 끄적여 놓으려 한다.
우선 ALTER문은 이미 존재하는 테이블의 구조나 형식등을 바꾸기 위해 사용한다.
따라서, 칼럼의 구조나 형식을 변경하기 위해 ALTER명령을 사용하게 된다.
ALTER 명령어는 다음과 같다.
1. 테이블 형식 변경
- Engine 사용 : ALTER TABLE 테이블명 ENGINE=형식; - type 사용 : ALTER TABLE 테이블명 TYPE=형식;
2. 테이블 이름 변경
- ALTER TABLE 테이블명 RENAME 바꿀이름 - RENAME TABLE 테이블명 TO 바꿀이름
3. 칼럼 추가
- 마지막에 추가 : ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 - 지정 칼럼 뒤에 : ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 AFTER 칼럼이름 - 제일 앞에 : ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 FIRST
4. 칼럼 삭제
- ALTER TABLE 테이블명 DROP COLUMN 칼럼이름
5. 칼럼 변경
- ALTER TABLE 테이블명 MODIFY 컬럼이름 새컬럼타입 - ALTER TABLE 테이블명 CHANGE 컬럼이름 새컬럼이름 새컬럼타입 <h4><span style="text-decoration: underline; color: #ff0000;">6. 인덱스에 새항목 추가</span></h4> - ALTER TABLE 테이블명 ADD INDEX(컬럼이름)
7. 인덱스 삭제
- ALTER TABLE 테이블명 DROP INDEX 컬럼이름 - DROP INDEX 인덱스이름 ON 테이블명
8. 기본키(Primary Key) 지정하기
- ALTER TABLE 테이블명 ADD PRIMARY KEY(칼럼이름) 컬럼이름 mysql> DESCRIBE test; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | t1 | varchar(40) | | | | | | t2 | varchar(40) | YES | | NULL | | | t3 | varchar(40) | YES | | NULL | | | t4 | varchar(40) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE test ADD PRIMARY KEY(t1); Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESCRIBE test; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | t1 | varchar(40) | | PRI | | | | t2 | varchar(40) | YES | | NULL | | | t3 | varchar(40) | YES | | NULL | | | t4 | varchar(40) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
9. 기본키 삭제
- ALTER TABLE 테이블명 DROP PRIMARY KEY 이름 바꾸기 mysql> ALTER TABLE tablename RENAME bbs; 컬럼 속성 수정 mysql> ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY; ALTER TABLE tablename MODIFY 컬럼이름 컬럼속성 컬럼 이름 바꾸기 sysql> ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT; CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다. 컬럼 추가 mysql> ALTER TABLE bbs ADD name varchar(10); ALTER TABLE tablename ADD 컬럼이름 컬럼속성 컬럼 삭제 mysql> ALTER TABLE bbs DROP colname; 특정 컬럼 뒤에 새로운 컬럼 추가 mysql> ALTER TABLE bbs ADD newcol varchar(10) AFTER num; num 컬럼 뒤에 newcol 컬럼 추가. 기존 컬럼을 지우고 맨 앞에 컬럼 추가 mysql> ALTER TABLE bbs DROP newcol, ADD newcol VARCHAR(10) FIRST; 맨 앞에 추가하려면 FIRST를 사용한다. PRIMARY KEY 속성 삭제 mysql> ALTER TABLE test DROP PRIMARY KEY; 이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때 PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다. mysql> ALTER TABLE test MODIFY a CHAR(1) NOT NULL; 테이블의 내용 전체 삭제 mysql> TRUNCATE TABLE tablename;