[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 구문을 이용하여 테이블 속성을 변경하는 강의를

마치겠습니다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

1 Response

  1. 2024년 10월 22일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/528 […]

페이스북/트위트/구글 계정으로 댓글 가능합니다.