-
Oracle - DDL (Data Definition Language) ALTER, DROP - Part 3데이터베이스/Oracle 2020. 11. 22. 03:06728x90반응형
ALTER
ALTER란 테이블에 정의된 내용을 수정할때 사용하는 데이터 정의어로 컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경, 테이블 명/컬럼 명/제약 조건 명 변경 등을 할 수 있다.
ALTER 컬럼 추가
ADD를 사용히하여 테이블의 컬럼을 추가한다.
[ 컬럼 추가 예시 ]
ALTER TABLE DEPT_COPY ADD (CNAME VARCHAR2(20)); -- CNAME 컬럼추가
ADD를 사용하여 CNAME컬럼을 추가한다.
ALTER TABLE DEPT_COPY ADD (LNAME VARCHAR2(40) DEFAULT ‘한국’); -- 컬럼 추가 및 기본값 설정
ADD를 사용하여 LNAME컬럼 추가와 동시에 기본값을 부여한다.
ALTER 컬럼 수정
MODIFY를 사용하여 테이블의 컬럼을 수정한다.
[ 컬럼 수정 예시 ]
ALTER TABLE DEPT_COPY MODIFY DEPT_ID CHAR(3) -- char 3byte로 변경 MODIFY DEPT_TITLE VARCHAR(30) -- varchar 30byte로 변경 MODIFY LOCATION_ID VARCHAR2(2) -- varchar2 2byte로 변경 MODIFY CNAME CHAR(20) -- char 20byte로 변경 MODIFY LNAME DEFAULT '미국'; -- 기본값을 미국으로 변경
MODIFY를 사용하여 테이블 컬럼의 데이터형을 바꾼다.
ALTER 컬럼 삭제
DROP을 사용하여 테이블의 컬럼을 삭제한다.
[ 컬럼 삭제 예시 ]
ALTER TABLE DEPT_COPY2 DROP COLUMN DEPT_ID; -- DEPT_ID 컬럼 삭제
DROP을 사용하여 DEPT_ID 컬럼을 삭제한다.
* 컬럼 삭제 시 참조하고 있는 컬럼이 있다면 컬럼 삭제가 불가능하다.
하지만 CASCADE CONSTRAINT를 사용하여 삭제 가능하다.
ALTER TABLE TB1 DROP COLUMN PK CASCADE CONSTRAINT;
ALTER 제약조건 추가
ADD CONSTRAINT를 사용하여 테이블 컬럼의 제약조건을 추가한다.
[ 제약 조건 추가 예시]
ALTER TABLE DEPT_COPY ADD CONSTRAINT DCOPY_DID_PK PRIMARY KEY(DEPT_ID) -- PRIMARY KEY 추가 ADD CONSTRAINT DCOPY_DTITLE_UNQ UNIQUE(DEPT_TITLE) -- UNIQUE 추가 MODIFY LNAME CONSTRAINT DCOPY_LNAME_NN NOT NULL; -- NOT NULL 추가
ADD CONSTRAINT를 사용하여 제약 조건을 추가한다.
추가 후 확인해보자.
SELECT UC.CONSTRAINT_NAME, UC.CONSTRAINT_TYPE, UC.TABLE_NAME, UCC.COLUMN_NAME, UC.SEARCH_CONDITION FROM USER_CONSTRAINTS UC JOIN USER_CONS_COLUMNS UCC ON (UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME) WHERE UC.TABLE_NAME = ‘DEPT_COPY
ALTER 제약조건 삭제
DROP CONSTRAINT를 사용하여 테이블 컬럼의 제약조건을 삭제한다.
[ 제약 조건 삭제 예시]
ALTER TABLE DEPT_COPY DROP CONSTRAINT DCOPY_DID_PK -- 삭제 DROP CONSTRAINT DCOPY_DTITLE_UNQ -- 삭제 MODIFY LNAME NULL; -- 삭제
DROP CONSTRAINT를 사용하여 제약 조건을 삭제한다.
ALTER 컬럼 이름 변경
RENAME을 사용하여컬럼의 이름을 변경할 수 있다.
[ 컬럼 이름 변경 예시 ]
ALTER TABLE DEPT_COPY RENAME COLUMN DEPT_TITLE TO DEPT_NAME; -- 컬럼 이름 변경
RENAME을 사용하여 DEPT_TITLE에서 DEPT_NAME으로 컬럼 이름 변경한다.
ALTER 제약조건 이름 변경
RENAME CONSTRAINT를 사용하여 제약조건의 이름을 변경할 수 있다.
[ 제약조건 이름 변경]
ALTER TABLE USER_FOREIGNKEY RENAME CONSTRAINT SYS_C007211 TO UF_UP_NN; -- UF_UP_NN로 변경 ALTER TABLE USER_FOREIGNKEY RENAME CONSTRAINT SYS_C007212 TO UF_UN_PK; -- UF_UP_NN로 변경 ALTER TABLE USER_FOREIGNKEY RENAME CONSTRAINT SYS_C007213 TO UF_UI_UQ; -- UF_UI_UQ로 변경 ALTER TABLE USER_FOREIGNKEY RENAME CONSTRAINT SYS_C007214 TO UF_GC_FK; -- UF_GC_FK로 변경
RENAME CONSTRAINT를 사용하여 제약조건의 이름 변경이 가능하다.
ALTER 테이블 이름 변경
RENAME TO를 사용하여 테이블 이름을 바꿀 수 있다.
[ 테이블 이름 변경 예시]
ALTER TABLE DEPT_COPY RENAME TO DEPT_TEST;
또는 이러한 방식으로 바꿀 수 있다.
RENAME DEPT_COPY TO DEPT_TEST;
DROP
DROP이란 데이터베이스 객체를 삭제하는 구문이다.
[ DROP 예시 ]
DROP TABLE DEPT_TEST CASCADE CONSTRAINT;
결과는 이러하다.
728x90반응형'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle - SEQUENCE (0) 2020.11.28 Oracle - View (0) 2020.11.23 Oracle - DML(Data ManipulationLanguage) DELETE - Part 3 (0) 2020.11.20 Oracle - DML(Data ManipulationLanguage) UPDATE - Part 2 (0) 2020.11.20 Oracle - DML(Data ManipulationLanguage) INSERT - Part 1 (0) 2020.11.20