(데이터베이스) DDL(Alter)

우선 ALTER문은 이미 존재하는 테이블의 구조나 형식등을 바꾸기 위해 사용한다. 
따라서, 칼럼의 구조나 형식을 변경하기 위해 ALTER명령을 사용하게 된다. 
ALTER 명령어는 다음과 같다. 

<테이블 이름 변경>


ALTER TABLE 테이블명 RENAME 바꿀이름
또는
RENAME TABLE 테이블명 TO 바꿀이름


<칼럼 추가>


- 마지막에 추가: ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입
- 지정 칼럼 뒤에: ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 AFTER 칼럼이름
- 제일 앞에: ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 FIRST


<칼럼 삭제>

ALTER TABLE 테이블명 DROP COLUMN 칼럼이름

<칼럼 변경>


ALTER TABLE 테이블명 MODIFY 컬럼이름 컬럼타입
ALTER TABLE 테이블명 CHANGE 칼럼이름 새 칼럼이름 칼럼타입


<인덱스에 새 항목 추가>


ALTER TABLE 테이블명 ADD INDEX (칼럼이름)



<인덱스 삭제>

ALTER TABLE 테이블명 DROP INDEX(칼럼이름)
DROP INDEX 인덱스 이름 ON 테이블명



<제약 조건 추가>
테이블 생성시 제약조건을 추가하지 않았다면 추가할 수 있다.

ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);


예)
ALTER TABLE 테이블명
ADD CONSTRAINT PLAYER_FK
FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);

* FOREIGN KEY 제약조건을 위와 같이 추가하면 PLAYER 테이블의 TEAM_ID 컬럼이 TEAM 테이블의 TEAM_ID 컬럼을 참조하게 된다.
참조 무결성 옵션에 따라서 만약 TEAM 테이블이나 TEAM 테이블의 데이터를 삭제하려 할 경우 외부(PLAYER 테이블)에서 참조되고 있기 때문에 삭제가 불가능하게 제약을 할 수 있다.
즉 외부키(FK)를 설정함으로써 실수에 의한 테이블 삭제나 필요한 데이터의 의도치 않은 삭제와 같은 불상사를 방지하는 효과를 볼 수 있다.





댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기