-
SQL - DDL(Data Definition Language)의 ALTER, DROPDataBase/Oracle 2022. 1. 27. 22:08728x90반응형
ALTER
- 객체를 수정하는 구문
- 테이블 객체 수정, 칼럼 추가/삭제/수정, 제약조건 추가/삭제/수정,
- 테이블명 수정, 제약조건 이름 수정
칼럼 추가/삭제/수정
칼럼 추가
SELECT DC.* FROM DEPT_COPY DC; -- LNAME 칼럼 추가 ALTER TABLE DEPT_COPY ADD (LNAME VARCHAR2(20));
칼럼을 추가할 때 DEFAULT 값 지정할 수 있다.
-- 컬럼 생성 시 DEFAULT 값 지정 ALTER TABLE DEPT_COPY ADD (CNAME VARCHAR2(20) DEFAULT '한국'); SELECT DC.* FROM DEPT_COPY DC;
칼럼 삭제
-- 컬럼 삭제 ALTER TABLE DEPT_COPY DROP COLUMN LNAME; SELECT DC.* FROM DEPT_COPY DC;
칼럼 변경
-- 칼럼 자료형 수정 ALTER TABLE DEPT_COPY2 MODIFY DEPT_ID CHAR(3) MODIFY DEPT_TITLE VARCHAR2(30) MODIFY LOCATION_ID VARCHAR2(2);
칼럼의 DEFAULT 값 변경
-- DEFAULT 값 변경 ALTER TABLE DEPT_COPY MODIFY CNAME DEFAULT '미국';
제약 조건 추가/삭제/변경
제약조건 추가
CREATE TABLE DEPT_COPY2 AS SELECT D.* FROM DEPARTMENT D; -- 칼럼의 제약조건 추가 ALTER TABLE DEPT_COPY2 ADD CONSTRAINT PK_DEPT_ID2 PRIMARY KEY(DEPT_ID); -- 칼럼의 제약조건 추가 ALTER TABLE DEPT_COPY2 ADD CONSTRAINT UN_DEPT_TITLE2 UNIQUE(DEPT_TITLE); -- 칼럼의 제약조건 추가 (NOT NULL은 MODIFY로 해줘야 한다) ALTER TABLE DEPT_COPY2 MODIFY DEPT_TITLE CONSTRAINT NN_LID NOT NULL;
제약 조건 삭제
-- 제약조건 1개 삭제시 ALTER TABLE DEPT_COPY2 DROP CONSTRAINT PK_DEPT_ID2; -- 제약조건 여러개 삭제시 -- NOT NULL 제약 조건 삭제 시 MODIFY 사용 ALTER TABLE DEPT_COPY2 DROP CONSTRAINT UN_DEPT_TITLE2 MODIFY DEPT_TITLE NULL;
컬럼, 제약조건, 테이블 이름 변경
칼럼 이름 변경
CREATE TABLE DEPT_COPY3 AS SELECT * FROM DEPARTMENT; ALTER TABLE DEPT_COPY3 RENAME COLUMN DEPT_ID TO DEPT_CODE; SELECT DC.* FROM DEPT_COPY3 DC;
제약조건 이름 변경
-- 제약조건 추가 ALTER TABLE DEPT_COPY3 ADD CONSTRAINT PK_DEPT_CODE3 PRIMARY KEY(DEPT_CODE); -- 제약조건 이름 변경 ALTER TABLE DEPT_COPY3 RENAME CONSTRAINT PK_DEPT_CODE3 TO PK_DCODE;
테이블 이름 변경
ALTER TABLE DEPT_COPY3 RENAME TO DEPT_TEST;
DROP
테이블 삭제
주의할 점은 테이블 삭제할 때 제약조건도 같이 삭제 되지 않으므로 CASCADE를 이용하여 제약조건도 같이 삭제해준다.
-- 테이블 삭제 DROP TABLE DEPT_TEST CASCADE CONSTRAINTS;
728x90반응형'DataBase > Oracle' 카테고리의 다른 글
SQL - 시퀀스(SEQUENCE) (0) 2022.01.28 SQL - VIEW, VIEW 옵션 (0) 2022.01.28 SQL - TCL (Transaction Control Language) (0) 2022.01.27 SQL - DML(Data Manupulation Language) DELETE, DDL(Data Definition Language) TRUNCATE (0) 2022.01.27 SQL - DML(Data Manipulation Language) INSERT, UPDATE, UPDATE시 주의사항 (0) 2022.01.27