DDL(ALTER) +DROP

2024. 6. 7. 19:28SQL

- 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