2024. 6. 7. 19:28ㆍSQL
- ALTER
* 수정 가능한 것 : 컬럼(추가, 수정, 삭제), 제약조건(추가, 삭제), 이름변경(테이블,컬럼, 제약조건)
* 작성법
1. 테이블을 수정하는 경우
ALTER TABLE 테이블명 ADD | MODIFY | DROP 수정할내용;
1) 제약조건 추가, 삭제
** [ ] : 생략 가능
제약조건 추가
ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] 제약조건(컬럼명) [REFERENCES 테이블명(컬럼명)];
제약조건 삭제
ALTER TABLE 테이블명 DROP 제약조건(컬럼명);
2) 컬럼 추가, 수정, 삭제
컬럼 추가
ALTER TABLE 테이블명 ADD(컬럼명 데이터타입 [DEFAULT '값']);
컬럼 수정
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입; (데이터 타입 변경)
ALTER TABLE 테이블명 MODIFY DEFAULT '값'; (기본값 수정)
** 데이터 타입을 수정할 경우 컬럼에 저장된 크기 미만으로는 변경할 수 없음
EX) VARCHAR2(100) -> VARCHAR2(10)일 때 데이터 10 초과되는 게 있으면 변경 불가
컬럼 값을 조절할 땐 이미 저장된 데이터 값이 변경할 데이터 타입 크기보다 크지 않은지 확인하고 조절
컬럼 삭제
ALTER TABLE 테이블명 DROP (삭제할컬럼명);
ALTER TALBE 테이블명 DROP COLUMN 삭제할 컬럼명;
** 테이블에는 최소 1개 이상의 컬럼이 존재해야하기 때문에 모든 컬럼 삭제 불가능
3) 테이블 삭제
DROP TABLE 테이블명 [CASCADE CONSTRAINTS];
** 부모 테이블에 외래 키에 의해 참조되는 고유/기본 키가 있다면 삭제할 수 없음
해결방법 1: 자식 테이블 삭제 후 부모 테이블 삭제
해결방법 2: CASCADE CONSTRAINTS 활용
-> 제약 조건까지 모두 삭제시켜 조건을 없애 부모 자식 관계를 끊음
4) 제약조건, 컬럼, 테이블 이름 변경
ALTER TABLE 원래이름 RENAME TO 바꿀이름;
'SQL' 카테고리의 다른 글
DCL (0) | 2024.06.07 |
---|---|
SEQUENCE (0) | 2024.06.07 |
제약 조건 (CONSTRAINT) (1) | 2024.06.05 |
DDL(CREATE) (0) | 2024.06.05 |
조건문 (0) | 2024.06.05 |