네이버클라우드 캠프 5기/학습내용 정리

16. ORACLE - DDL

박세류 2023. 5. 2. 09:53

1. DDL(Data Definition Language) : 데이터 정의어

1. DDL이란

  1. DDL은 데이터를 보관하고 관리하기 위한 객체(Table, Index, Sequence ...)들을 조작(생성, 수정, 삭제)하기 위한 명령.
  2. DDL은 DML과 다르게 실행 직후 바로 데이터베이스에 반영되는 특징이 있다. 트랜잭션이 자동으로 완료되기 때문에 바로 데이터베이스에 반영됨. ROLLBACK으로 실행취소가 불가능하다.
  3. DDL에는 CREATE, ALTER, DROP, TRUNCATE가 명령어로 존재한다.

2. 객체를 생성하는 CREATE

  1. CREATE TABLE 유저명.사용할 테이블명(
    컬럼1이름 컬럼1데이터의 타입,
    컬럼2이름 컬럼2데이터의 타입,
    ....
    컬럼n이름 컬럼n데이터의 타입
    ) => 가장 기본적인 테이블의 형태
  2. 테이블 명명 규칙
    • 테이블명은 문자로 시작해야 한다.(한글도 가능, 숫자는 불가능)
    • 테이블명의 길이는 30byte로 제한한다.(영어는 30자, 한글은 15자)
    • 동일한 사용자 안에 동일한 명칭의 테이블을 생성할 수 없다.
    • 첫 글자 아닌 테이블명 안에서는 숫자나 특수문자도 사용이 가능
    • SQL의 예약어는 테이블명으로 사용할 수 없다.(SELECT, FROM, WHERE, JOIN...)
    • 관례적인 테이블 명명규칙
      • 테이블의 명칭 첫자리는 T_나 TB_를 사용한다.
      • 뷰 테이블의 명칭 첫자리는 V_를 사용한다.
      • T(TB or V)_프로젝트의 시그니쳐_테이블의 역할(행정표준용어, 프로젝트별로 관리하는 용어)
        ex) T_BNCL_MBER, T_BNLC_MEMBER
  3. 다른 테이블을 참조하여 테이블 생성
    • CREATE TABLE 테이블명
      AS SELECT 구문;

3. 객체를 수정(변경)하는 ALTER

  1. 데이터베이스에 이미 생성되어 있는 객체들을 수정할 때 사용하는 명령어.
  2. ADD(테이블의 컬럼을 추가), RENAME(컬럼명을 변경), MODIFY(컬럼의 데이터타입을 변경), ...의 명령어들과 함께 사용해서 테이블의 구조를 수정, 조작할 수 있다.
  3. ADD : 테이블에 새로운 컬럼을 하나 추가
    • ALTER TABLE 테이블명
      ADD 컬럼명 컬럼의데이터타입; 
  4. RENAME : 컬럼의 이름을 수정/변경
    • ALTER TABLE 테이블명
      RENAME COLUMN 현재컬럼명 TO 변경될컬럼명;
  5. MODIFY : 컬럼의 데이터타입을 변경
    • ALTER TABLE 테이블명
      MODIFY 컬럼명 변경될데이터타입;
  6. DROP : 테이블에서 컬럼을 삭제
    • ALTER TABLE 테이블명
      DROP COLUMN 컬럼명;

4. 객체를 삭제하는 DROP

  1. 데이터베이스에 생성되어 있는 객체를 삭제할 때 사용하는 명령어.
  2. DROP TABLE 테이블명;
  3. ORACLE에는 TIMESTAMP라는 특수한 기능이 있어서 3시간 전까지의 데이터 확인 할 수 있다. DELETE된 데이터만 복구 가능하다. DROP한 테이블은 복구 불가능.

5. 객체의 이름을 변경하는 RENAME

  1. RENAME 현재테이블명 TO 변경할테이블명;

6. 테이블의 데이터를 삭제하는 TRUNCATE

  1. 테이블에 저장되어있는 모든 데이터를 삭제.
  2. DDL이기 때문에 ROLLBACK 불가능.
  3. 왠만하면 DELETE를 이용해서 데이터를 삭제하는 것을 권장.
  4. TRUNCATE TABLE 테이블명;
  5. WHERE 절을 사용할 수 없다.
728x90

'네이버클라우드 캠프 5기 > 학습내용 정리' 카테고리의 다른 글

18. ORACLE - Constraint  (0) 2023.05.02
17. ORACLE - Object  (0) 2023.05.02
15. ORACLE - DML  (0) 2023.05.02
14. ORACLE - Join & SubQuery  (0) 2023.04.13
13. ORACLE - Select  (0) 2023.04.13