[SQL] ALTER 구문 사용하기
=================================================
ALTER 구문 사용하기
=================================================
1. 필드 추가 하기
더 많은 데이터가 증가 되면서 필드의 개수를 추가 해야 할 경우가 종종
발생하게 된다. 이때 사용되는 구문이 alter 구문이다.
mysql> select * from member;
+—-+——–+——————-+——+——+——–+
| NO | NAME | EMAIL | SEX | AREA | HOB |
+—-+——–+——————-+——+——+——–+
| 0 | 서진우 | alang at kobis.net | m | 서울 | 운동
|
| 1 | 박창현 | macs911 at kobis.net | m | 서울 | 운동
|
| 2 | 김수경 | invoice at kobis.net | w | 서울 |
컴퓨터 |
| 3 | 신상철 | ttt at kobis.net | m | 경기 | 컴퓨터 |
| 4 | 김승진 | bbb at kobis.net | m | 서울 | 컴퓨터 |
| 5 | 이필유 | ccc at kobis.net | w | 경기 | 요리 |
| 6 | 이광수 | ddd at kobis.net | m | 서울 | 운동 |
+—-+——–+——————-+——+——+——–+
7 rows in set (0.00 sec)
위의 출력문과 같이 현재 no,name,email,sex,area,bob 의 필드로 구성된
테이블이 member 이다. 여기에 나이에 관련된 age 필드를 추가 한다고
가정하면..
mysql> alter table member add age varchar(3);
Query OK, 7 rows affected (0.00 sec)
레코드: 7개 중복: 0개 경고: 0개
mysql> select * from member;
+—-+——–+——————-+——+——+——–+——+
| NO | NAME | EMAIL | SEX | AREA | HOB | age |
+—-+——–+——————-+——+——+——–+——+
| 0 | 서진우 | alang at kobis.net | m | 서울 | 운동
| NULL |
| 1 | 박창현 | macs911 at kobis.net | m | 서울 | 운동
| NULL |
| 2 | 김수경 | invoice at kobis.net | w | 서울 |
컴퓨터 | NULL |
| 3 | 신상철 | ttt at kobis.net | m | 경기 | 컴퓨터 |
NULL |
| 4 | 김승진 | bbb at kobis.net | m | 서울 | 컴퓨터 |
NULL |
| 5 | 이필유 | ccc at kobis.net | w | 경기 | 요리 |
NULL |
| 6 | 이광수 | ddd at kobis.net | m | 서울 | 운동 |
NULL |
+—-+——–+——————-+——+——+——–+——+
7 rows in set (0.00 sec)
위와 같이 [ alter table member add age varchar(3) ] 구문을 사용하면
된다. alter 구문의 형식은 다음과 같다.
형식)
ALTER TABLE [테이블 이름] ADD [추가필드명] [변수타입]
위의 예제에서 보는 바와 같이 alter table 필드를 추가 하면 행당 필드
값은 무조건 NULL 로 표시된다.
2. 필드 삭제 하기
필요없는 필드를 제거 하는 것도 alter 구문으로 한다. 형식은 다음과
같다.
형식 )
ALTER TABLE [테이블 이름] DROP [삭제필드명]
mysql> alter table member drop age;
Query OK, 7 rows affected (0.00 sec)
레코드: 7개 중복: 0개 경고: 0개
mysql> select * from member;
+—-+——–+——————-+——+——+——–+
| NO | NAME | EMAIL | SEX | AREA | HOB |
+—-+——–+——————-+——+——+——–+
| 0 | 서진우 | alang at kobis.net | m | 서울 | 운동
|
| 1 | 박창현 | macs911 at kobis.net | m | 서울 | 운동
|
| 2 | 김수경 | invoice at kobis.net | w | 서울 |
컴퓨터 |
| 3 | 신상철 | ttt at kobis.net | m | 경기 | 컴퓨터 |
| 4 | 김승진 | bbb at kobis.net | m | 서울 | 컴퓨터 |
| 5 | 이필유 | ccc at kobis.net | w | 경기 | 요리 |
| 6 | 이광수 | ddd at kobis.net | m | 서울 | 운동 |
+—-+——–+——————-+——+——+——–+
7 rows in set (0.00 sec)
3. 필드정보 변경하기
필드 속성을 변경할때도 alter 구문을 이용한다. 형식은 다음과
같다.
형식 )
ALTER TABLE [ 테이블 이름 ] CHANGE [현재 필드명] [변경할 필드명] [변수타입]
예) 필드명 변경
먼저 member 테이블 정보를 확인하자.
mysql> desc member;
+——-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+—–+———+——-+
| NO | int(11) | | PRI | 0 | |
| NAME | varchar(30) | YES | | NULL | |
| EMAIL | varchar(50) | YES | | NULL | |
| SEX | char(2) | YES | | NULL | |
| AREA | varchar(8) | YES | | NULL | |
| HOB | varchar(10) | YES | | NULL | |
| age | char(3) | YES | | NULL | |
+——-+————-+——+—–+———+——-+
7 rows in set (0.00 sec)
age 필드명을 “나이” 로 바꾸어 보자.
mysql> alter table member change age 나이 varchar(3);
Query OK, 7 rows affected (0.01 sec)
레코드: 7개 중복: 0개 경고: 0개
확인하자.
mysql> desc member;
+——-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+—–+———+——-+
| NO | int(11) | | PRI | 0 | |
| NAME | varchar(30) | YES | | NULL | |
| EMAIL | varchar(50) | YES | | NULL | |
| SEX | char(2) | YES | | NULL | |
| AREA | varchar(8) | YES | | NULL | |
| HOB | varchar(10) | YES | | NULL | |
| 나이 | char(3) | YES | | NULL | |
+——-+————-+——+—–+———+——-+
7 rows in set (0.00 sec)
예) 변수타입 변경
mysql> alter table member change 나이 나이 varchar(10);
Query OK, 7 rows affected (0.00 sec)
레코드: 7개 중복: 0개 경고: 0개
mysql> desc member;
+——-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+—–+———+——-+
| NO | int(11) | | PRI | 0 | |
| NAME | varchar(30) | YES | | NULL | |
| EMAIL | varchar(50) | YES | | NULL | |
| SEX | char(2) | YES | | NULL | |
| AREA | varchar(8) | YES | | NULL | |
| HOB | varchar(10) | YES | | NULL | |
| 나이 | varchar(10) | YES | | NULL | |
+——-+————-+——+—–+———+——-+
7 rows in set (0.00 sec)
예) 필드명과 변수타입 변경
mysql> alter table member change 나이 age varchar(3);
Query OK, 7 rows affected (0.00 sec)
레코드: 7개 중복: 0개 경고: 0개
mysql> desc member;
+——-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+—–+———+——-+
| NO | int(11) | | PRI | 0 | |
| NAME | varchar(30) | YES | | NULL | |
| EMAIL | varchar(50) | YES | | NULL | |
| SEX | char(2) | YES | | NULL | |
| AREA | varchar(8) | YES | | NULL | |
| HOB | varchar(10) | YES | | NULL | |
| age | char(3) | YES | | NULL | |
+——-+————-+——+—–+———+——-+
7 rows in set (0.00 sec)
이것으로 ALTER 구문을 이용하여 테이블 속성을 변경하는 강의를
마치겠습니다.