컬럼 추가
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; 

my_contacts
 contact_id phone  last_name  first_name  email 
 

mysql> alter table my_contacts add cloumn phone varchar(10) after last_name;

 my_contacts
 contact_id last_name phone first_name  email 
  

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  




Posted by linuxism
,