컬럼 추가
ALTER TABLE <테이블명> ADD <컬럼> <데이터 타입> AFTER <테이브명>
컬럼명 변경, 타입 변경
ALTER TABLE <테이블명> CHANGE <OLD 컬럼> <NEW 컬럼> <데이터 타입>
컬럼 삭제
ALTER TABLE <테이블명> DROP <컬럼명>
컬럼 타입 변경
ALTER TABLE <테이블명> MODIFY <컬럼명> <데이터 타입>
테이블명 수정
ALTER TABLE <테이블명> RENAME <NEW 테이블명>
출처 - http://baljack.tistory.com/9
=========================================================================================
테스트 테이블 생성
DROP TABLE test;
CREATE TABLE test (
id INTEGER,
age INTEGER,
name VARCHAR(50),
jumin VARCHAR(15),
PRIMARY KEY(id),
UNIQUE(age),
INDEX(name),
KEY(jumin),
INDEX(name, jumin)
);
- INDEX를 KEY로 바꿔도 된다.
- INDEX(name, jumin) 과 INDEX(name), INDEX(jumin) 은 다름
- [] 에 들어가 있는 내용은 생략 가능
▶ 테이블 속성 변경
1. 필드 추가
- ATLER TABLE 테이블명 ADD [COLUMN] 추가할필드명 필드타입 [FIRST | AFTER 필드명]
- ATLER TABLE 테이블명 ADD [COLUMN] (추가할필드명 필드타입, ...)
2. 필드명 및 타입 변경
- ALTER TABLE 테이블명 CHANGE [COLUMN] 기존필드명 변경할필드명 변경할필드타입 [FIRST | AFTER 필드명]
3. 필드 타입 변경
- ALTER TABLE 테이블명 MODIFY [COLUMN] 기존필드명 변경할필드명 [FIRST | AFTER 필드명]
4. 필드 삭제
- ATLER TABLE 테이블명 DROP [COLUMN] 제거할필드명
5. 필드 디폴트 정의
- ATLER TABLE 테이블명 ATLER [COLUMN] 필드명 {SET DEFAULT 'XXX' | DROP DEFAULT}
6. 테이블명 변경
- ATLER TABLE 테이블명 RENAME 변경할테이블명
7. COMMENT 추가
- ALTER TABLE 테이블명 COMMENT 'XXX'
-> SHOW TABLE STATUS
- ALTER TABLE 테이블명 MODIFY 필드명 필드타입 [DEFAULT 'XXX'] COMMENT 'YYY';
-> SHOW CREATE TABLE 테이블명
▶ 인덱스 관련
1. 인덱스 생성
- CREATE INDEX 인덱스명 ON 테이블명 (필드1, 필드2, ...)
- ALTER TABLE 테이블명 ADD INDEX [인덱스명] [인덱스타입] (필드1, 필드2, ...)
- ALTER TABLE 테이블명 ADD [CONSTRAINT [심볼]] PRIMARY KEY [인덱스타입] (필드1, 필드2, ...)
- ALTER TABLE 테이블명 ADD [CONSTRAINT [심볼]] FOREIGN KEY [인덱스명] (필드1, 필드2, ...) [레퍼런스조건]
- ALTER TABLE 테이블명 ADD [CONSTRAINT [심볼]] UNIQUE [인덱스명] [인덱스타입] (필드1, 필드2, ...)
- ALTER TABLE 테이블명 ADD FULLTEXT [인덱스명] (필드1, 필드2, ...)
2. 인덱스 보기
- SHOW INDEX FROM 테이블명
3. 인덱스 삭제
- DROP INDEX 인덱스명 ON 테이블명
- ALTER TABLE 테이블명 DROP INDEX 인덱스명
- ALTER TABLE 테이블명 DROP PRIMARY KEY
- ALTER TABLE 테이블명 DROP FOREIGN KEY [fk_symbol]
4. 키 활성화
- ALTER TABLE 테이블명 ENABLE KEYS
- ALTER TABLE 테이블명 DISABLE KEYS
5. 정렬
- ALTER TABLE 테이블명 ORDER BY 필드명
6. 캐릭터 셋
- ALTER TABLE 테이블명 CONVER TO CHARACTER SET 캐릭터셋
- ALTER TABLE 테이블명 CHARACTER SET 캐릭터셋
7. 데이터베이트 엔진 변경
- ALTER TABLE 테이블명 ENGINE={InnoDB | MyISAM}
▶ 유용 명령어
HELP SHOW
HELP {SELECT | DELETE | UPDATE}
HELP ALTER
HELP ALTER {DATABASE | TABLE}
SHOW PRIVILEGES
SHOW OPEN TABLES
SHOW TABLE STATUS
출처 - http://blog.naver.com/goddes4?Redirect=Log&logNo=30116416169
==============================================================================================
Alter문을 이용하면 테이블에 열을 추가하는 등 구조를 변경할 수 있다.
Alter문에는 여러가지 연산자가 있다.
- Add : 테이블에 열을 추가한다.
- Rename to : 테이블의 이름을 바꾼다.
- Change : 기존 열의 이름과 데이터 타입을 바꾼다.
- Modify : 기존 열의 데이터 타입이나 위치를 변경한다.
- Drop : 테이블의 열을 제거한다.
Add 연산자
- 테이블에 열을 추가할 수 있다.
mysql> alter table 테이블명 add column 추가하려는 컬럼명 first(위치);
예) 기존 테이블에 제 1정규화를 적용하려고 한다.(기본키 컬럼 적용)
mysql> alter table 테이블명 add cloumn 컬럼명 int not null auto_increment first, //첫번재 컬럼위치에 추가
add primary key (컬럼명); // (컬럼명)을 기본키로 설정
* first는 첫번째 컬럼 위치에 집어 넣으라는 키워드이다.
* first자리에는 여러 키워드가 들어갈 수 있다.
- first, second, third, ... , last, before, after 등등
* before과 after 사용방법
mysql> alter table my_contacts add column phone varchar(10) before last_name;
contact_id | phone | last_name | first_name |
mysql> alter table my_contacts add cloumn phone varchar(10) after last_name;
my_contacts
contact_id | last_name | phone | first_name |
Alter문의 Rename to 연산자를 이용하여 테이블의 이름을 변경할 수 있다.
mysql> alter table 기존 테이블명 rename to 새로운 테이블명;
Alter문의 Change 연산자를 이용하면 기존 열의 이름과 데이터 타입을 바꿀 수 있다.
mysql> alter table 테이블명 change column 컬럼명 새로운 컬럼명 속성;
예) project_list 테이블의 'number'라는 열의 이름을 'proj_id'로 고친후 제 1정규화를 적용한다.
mysql> alter table project_list change column number proj_id int not null auto_increment, // 밑줄 : 속성
add primary key (proj_id); // 기본키 적용
한꺼번에 여러개의 컬럼을 수정할 수 있다.
예) project_list 테이블의 컬럼 'descriptionofproj' 를 'proj_desc' 이름으로 데이터 타입을 varchar(100)으로,
컬럼 'contractoronjob'를 'con_name' 이름으로 데이터타입을 varchar(30)으로 수정한다.
mysql> alter table project_list change column descriptionofproj proj_desc varchar(100),
change column contractoronjob con_name varchar(30);
* 데이터타입만 수정할 경우 Modify를 활용할 것!
http://warmz.tistory.com/247
예) projekts라는 테이블 이름을 project_list로 바꾸려고 한다.
myslq> alter table projekts rename to project_list;
Alter문의 Modify 연산자를 이용하면 컬럼의 위치나 데이터 타입을 변경할 수 있다.
mysql> alter table 테이블명 modify column 컬럼명 위치 혹은 데이터 타입;
예) 기존의 컬럼명은 그대로 사용하되 데이터 타입을 바꾸려고 한다.
mysql> alter table 테이블명 modify column 컬럼명 varchar(120);
열의 순서를 바꾸려면?
- 테이블이 만들어진 후의 열의 순서를 바꾸는 것은 불가능하다.
- 한가지 방법은 새로운 열을 원하는 위치에 추가하고 예전 열을 삭제하는 것이다.
- 또다른 방법은 쿼리 결과 출력시 열이 표시되는 순서를 정해주는 것이다.
* 쿼리 결과 표시되는 열의 순서를 정해주는 방법
mysql> select column3, column1 from 테이블명;
또는
select column1, column3 from 테이블명;
Alter문에서 Drop 연산자를 이용하면 특정 컬럼을 삭제할 수 있다.
mysql> alter table 테이블명 drop 컬럼명;
* 컬럼을 삭제하면 그 안에 저장되어 있던 모든 데이터는 사라지므로 조심할 것!
출처 - http://warmz.tistory.com/248
'DB > MySQL' 카테고리의 다른 글
mysql primary key, foreign key 생성 및 수정 (0) | 2012.03.17 |
---|---|
mysql root 패스워드를 변경 (0) | 2012.03.16 |
MySQL flush privileges 명령어 (0) | 2012.01.24 |
mysql user 생성시 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value (2) | 2012.01.24 |
MySQL 시스템 데이터베이스 및 테이블 구조 이해하기 (0) | 2012.01.19 |