Programming/SQL

[Oracle] DDL(1) - ALTER(컬럼 추가/수정/삭제)

Jayna. 2024. 6. 8. 00:06
728x90

ALTER

객체 구조를 수정하는 구문

ALTER TABLE 테이블명 수정할내용;

 

1) 컬럼 추가/ 수정/ 삭제

1-1) 컬럼 추가(ADD)

ALTER TABLE 테이블명 ADD 추가할컬럼명 데이터타입 /*DEFAULT 기본값*/ (생략가능)
=> 생략시 NULL 값으로 채워짐
--CNAME 컬럼 추가
ALTER TABLE DEPT_COPY ADD CNAME VARCHAR2(20);
-- Table DEPT_COPY이(가) 변경되었습니다.
-- CNAME 컬럼이 만들어지고 기본적으로 NULL값으로 채워짐

-- LNAME 컬럼추가 DEFAULT 지정
ALTER TABLE DEPT_COPY ADD LNAME VARCHAR2(20) DEFAULT '한국';
-- LNAME 컬럼이 만들어지고 NULL 이 아닌 DEFAULT 값으로 채워짐

 

1-2) 컬럼 수정(MODIFY)

테이터 타입 수정

-- 데이터타입 수정
ALTER TABLE 테이블명 MODIFY 수정할컬럼명 바꾸고자하는데이터타입

-- DEFAULT 값 수정
ALTER TABLE 테이블명 MODIFY 수정할컬럼명 DEFAULT 바꾸고자하는기본값

--**현재 변경하고자하는 컬럼에 이미 담겨있는 값과 완전히 타른 타입으로 변경 불가능
-- 문자 => 숫자 (X)
-- 문자열의 사이즈 축소 (X)
-- 문자열의 사이즈 확대 (O)
--DELT_TITLE 컬럼의 데이터아입을 VARCHAR2(40)으로
--LOCATION_ID 컬럼의 데이터타입을 VARCHAR2(3)으로
--LNAME 컬럼의 기본값을 '미국'으로 변경
ALTER TABLE DEPT_COPY
MODIFY DEPT_TITLE VARCHAR2(40)
MODIFY LOCATION_ID VARCHAR2(3)
MODIFY LNAME DEFAULT '미국';
728x90

 

1-3) 컬럼 삭제(DROP COLUMN)

DROP COLUMN 삭제하고자하는컬럼명
--** 삭제시 테이블에 최소 한 개의 컬럼은 존재해야 한다
--DEPT_COPY2 테이블에서 DEPT_ID 컬럼 지우기
ALTER TABLE DEPT_COPY2 DROP COLUMN DEPT_ID;

ROLLBACK;
-- DDL 구문은 복구 불가능

-- DEPT_COPY2 에서 모든 컬럼을 삭제하기
ALTER TABLE DEPT_COPY2 DROP COLUMN DEPT_TITLE;
ALTER TABLE DEPT_COPY2 DROP COLUMN LOCATION_ID;
ALTER TABLE DEPT_COPY2 DROP COLUMN CNAME;

ALTER TABLE DEPT_COPY2 DROP COLUMN LNAME;
-- 오류보고 ORA-12983: cannot drop all columns in a table
테이블에 최소 한 개의 컬럼은 존재해야 한다.
728x90