ALTER는 데이터베이스 구조를 바꾸는데 사용된다. PostgreSQL에서 지원하는 ALTER는 ALTER TABLE과 ALTER USER가 있다. 이곳에서는 ALTER TABLE만 간단히 살펴보도록 하겠다.
ALTER TABLE table [ * ] ADD [ COLUMN ] column type ALTER TABLE table [ * ] RENAME [ COLUMN ] column TO newcolumn ALTER TABLE table RENAME TO newtable
ALTER테이블로 할 수 있는 것은 3가지가 있다. 컬럼 추가하기, 컬럼이름 바꾸기, 테이블이름 바꾸기이다. 이외에 컬럼 삭제하기는 지원하지 않는다. (이 경우 새로운 테이블을 만든 후 SQL조작으로 데이터를 옮기는 것으로는 가능하다.)
역시 백견이 불여일타! 예제를 보도록 하자.
예제 3-5. 컬럼 추가하기 예제
ALTER TABLE student ADD COLUMN std_sex CHAR(1);
그림 3-7. student 테이블에 std_sex라는 필드를 추가한다.
위에서 보듯이 추가가 됨을 알 수 있다. 하지만 이렇게 추가된 컬럼은 테이블 구조상 제일 아래 위치하므로 그점을 주의하도록 하자. 그리고 ALTER TABLE로 컬럼을 추가할 경우 DEFAULT나 NOT NULL등이 적용되지 않으므로 이 점 주의하자. (기존의 값들은 모두 NULL로 들어간다.)
예제 3-6. 컬럼이름 바꾸기 예제
ALTER TABLE student RENAME std_sex TO std_sex2;
그림 3-8. std_sex필드의 이름을 std_sex2로 바꾸었다.
간단하게 컬럼 이름이 바뀌었다. 다시 원상복귀 하자.
예제 3-7. 필드명 바꾸기 예제
ALTER TABLE student RENAME std_sex2 TO std_sex;
예제 3-8. 테이블명바꾸기 예제
ALTER TABLE student2 RENAME TO student_new;
그림 3-9. student2 테이블의 이름을 student_new로 바꾸었다.
테이블명이 바뀌었음을 알 수 있다. 단, INDEX명은 바꾸지 않는다.