데이터 베이스를 운영하다보면 테이블의 구조를 변형해야 할 때가 있습니다. 가령, 손님의 정보 요구사항에 나이가 추가 되었다면 customer 테이블의 어트리뷰트( 열 )에 나이를 표시하는 항목이 추가되어야 할 것입니다. 이럴 경우 지금까지 배운 지식으로는 전체 테이블을 지우고 다시 만드는 수 밖에 없습니다. 하지만 테이블 안에 많은 양의 정보가 들어있을 경우 백업하기도 힘들고, 속도도 느리기 때문에 비효율적입니다.


1. 어트리뷰트 추가

 이럴 경우 간단히 테이블의 구조를 바꿀 수 있는 sql 구문이 있습니다. 바로 alter 구문인데요. 테이블에 어트리뷰트를 삽입하는 sql 문은 다음과 같습니다.


 table_name 에는 구조를 바꿀 테이블의 이름을 쓰고 A 에는 어트리뷰트 이름을 씁니다. D 는 추가 할 어트리뷰트의 도메인을 넣습니다. 예를 들어 customer 테이블에 age 라는 어트리뷰트를 추가하는 sql 문은 다음과 같습니다.

alter table customer add age int;

 위 sql 문이 적용되기 이전의 테이블이 다음과 같은 모습이었다고 가정하겠습니다.



sql문을 적용하고 난다음 테이블의 모습은 다음과 같습니다.




보시다 시피 age라는 어트리뷰트가 추가 된 것을 볼 수 있습니다. 하지만 따로 값을 지정해 주지 않았기 때문에 Mysql 의 경우에는 NULL 값을 채워 넣습니다.


2. 어트리뷰트 제거

 이제 테이블에서 어트리뷰트를 제거하는 sql문을 배워 보도록 하겠습니다. 어트리뷰트를 제거하는 sql구문은 다음과 같은 형태를 갖습니다.


 table_name 부분에는 어트리뷰트를 삭제하고자 하는 테이블의 이름을 쓰고 A에는 제거 할 어트리뷰트의 이름을 써 넣습니다. 그럼 예를 들어 보도록 하겠습니다. customer 테이블에 추가한 age 라는 어트리뷰트를 다시 제거해 보도록 하겠습니다.

alter table customer drop age;

위 sql 문이 적용되기 전의 테이블의 상태는 다음과 같습니다.



이제 sql 문을 적용한 모습을 보겠습니다.




 삭제 되는 어트리뷰트가 지워진 모습입니다. 모두 NULL 일 필요는 없고 저장되었던 정보는 모두 삭제가 됩니다. 이제 테이블의 구조도 바꿀 수 있게 되었습니다.


+ Recent posts