Programming/Database

[ORACLE 초급] DDL - CREATE, ALTER, RENAME, TRUNCATE, DROP

728x90
반응형

데이터 정의어

데이터 조작어(INSERT, UPDATE, DELETE)와 다르게 수행하자 마자 반영되는 특성(자동 COMMIT)이 있기 때문에 실행 취소가 불가능

CREATE

-- 데이터베이스 객체 생성
CREATE TABLE 소유 계정.테이블 이름(
    열1 이름  열1 자료형,
    열2 이름  열2 자료형,
    ...,
    열N 이름  열N 자료형
);

📍 TABLE 이름 생성 규칙

  1. 문자로 시작 (한글 가능, 숫자 불가, 대소문자 구별 안함 - 큰따옴표("")를 사용하면 대소문자 구별)
  2. 테이블 이름은 30byte 이하
  3. 같은 계정의 테이블 이름은 중복 불가
  4. 테이블 이름은 영문자, 한글, 숫자, 특수문자($, #, _) 가능
  5. SQL 키워드는 테이블 이름으로 사용 불가

📍 COLUMN 이름 생성 규칙

  1. 문자로 시작
  2. 열 이름은 30byte 이하
  3. 한 테이블의 열 이름은 중복 불가
  4. 열 이름은 영문자, 한글, 숫자, 특수문자($, #, _) 가능
  5. SQL 키워드는 열 이름으로 사용 불가

ALTER

-- 데이터베이스 객체 변경 (테이블 구조 변경 - 새 열 추가, 삭제, 자료형, 길이)
-- ADD (열 추가)
ALTER TABLE EMP
ADD HP VARCHAR2(20);

-- RENAME (열 이름 변경)
ALTER TABLE EMP
RENAME COLUMN HP TO TEL;

-- MODIFY (열 자료형 수정)
ALTER TABLE EMP
MODIFY EMPNO NUMBER(5); -- 저장된 데이터가 있을 때 길이를 줄일 수 없음

-- DROP (열 삭제)
ALTER TABLE EMP
DROP COLUMN TEL;

RENAME

-- 테이블 이름 변경
RENAME EMP TO EMP2;

TRUNCATE

-- 테이블의 모든 데이터 삭제
TRUNCATE TABLE EMP;

TRUNCATE 명령어 유의점?
DELETE문과 다른점은 ROLLBACK이 되지 않아 사용하면 복구가 불가능 하다.

DROP

-- 데이터베이스 객체 삭제
DROP TABLE EMP;
  • 오라클 10g부터 FLASHBACK기능(휴지통)을 사용해 삭제된 테이블을 복구할 수 있음 (특별한 상황에서 사용)
728x90
반응형