OracleDB - DDL

📘 DDL(DATA DEFINITION LANGUAGE)

  • 데이터 정의 언어(객체 생성, 수정, 삭제)
  • 객체(OBJECT)를 만들고(CREATE), 수정(ALTER)하고, 삭제(DROP) 등 데이터의 전체 구조를 정의하는 언어로 주로 DB관리자, 설계자가 사용한다.

📜 CREATE

  • 테이블이나 인덱스, 뷰 등 다양한 데이터베이스 객체를 생성하는 구문으로 테이블로 생성된 객체는 DROP 구문을 통해 제거 할 수 있다.

✏ 테이블 생성하기

테이블이란?

  • 행(row)과 열(column)으로 구성되는 가장 기본적인 데이터베이스 객체
  • 데이터 배이스 내에서 모든 데이터는 테이블을 통해서 저장된다.

CREATE를 사용하여 테이블 만드는 방법

CREATE TABLE 테이블명 (
        컬럼명 자료형(크기), 
        컬럼명 자료형(크기),
        ...);

✏ 컬럼에 주석 달기

[표현식]

COMMENT ON COLUMN 테이블명.컬럼명 IS '주석내용';

📜 제약 조건(CONSTRAINTS)

  • 사용자가 원하는 조건의 데이터만 유지하기 위해서 특정 컬럼에 설정하는 제약이다.
  • 데이터 무결성 보장을 목적으로 한다.
    --> 데이터 무결성이란? 중복 데이터 X, NULL X
  • 입력 데이터에 문제가 없는지 자동으로 검사하는 목적
  • 데이터의 수정/삭제 가능여부 검사등을 목적으로 한다.
    --> 제약조건을 위배하는 DML 구문은 수행할 수 없음!
  • 제약조건 종류
    PRIMARY KEY, NOT NULL, UNIQUE, CHECK, FOREIGN KEY.

✏ NOT NULL

해당 컬럼에 반드시 값이 기록되어야 하는 경우 사용
삽입/수정시 NULL값을 허용하지 않도록 컬럼레벨에서 제한

✏ UNIQUE 제약조건

컬럼에 입력 값에 대해서 중복을 제한하는 제약조건
컬럼레벨에서 설정 가능, 테이블 레벨에서 설정 가능하다.
단, UNIQUE 제약 조건이 설정된 컬럼에 NULL 값은 중복 삽입 가능하다.

✏ PRIMARY KEY(기본키) 제약조건

테이블에서 한 행의 정보를 찾기위해 사용할 컬럼을 의미한다.
테이블에 대한 식별자(IDENTIFIER) 역할을 한다.
NOT NULL + UNIQUE 제약조건의 의미
한 테이블당 한 개만 설정할 수 있다.
컬럼레벨, 테이블레벨 둘다 설정 가능하다.
한 개 컬럼에 설정할 수도 있고, 여러개의 컬럼을 묶어서 설정할 수 있다.

✏ FOREIGN KEY(외부키 / 외래키) 제약조건

--> 다른 테이블의 PK 또는 UNIQUE 제약조건이 설정된 컬럼

참조(REFERENCES)된 다른 테이블의 컬럼이 제공하는 값만 사용할 수 있다.
FOREIGN KEY제약조건에 의해서 테이블간의 관계(RELATIONSHIP)가 형성된다.
제공되는 값 외에는 NULL을 사용할 수 있다.

[컬럼레벨일 경우]
컬럼명 자료형(크기) [CONSTRAINT 이름] REFERENCES 참조할 테이블명 [(참조할컬럼)][삭제룰]

[테이블레벨일 경우][CONSTRAINT 이름] FOREIGN KEY (적용할컬럼명) REFERENCES 참조할테이블명 [(참조할컬럼)][삭제룰]
--> 테이블 레벨에서만 FOREIGN KEY 단어가 사용된다.

참조될 수 있는 컬럼은 PRIMARY KEY컬럼과, UNIQUE 지정된 컬럼만 외래키로 사용할 수 있다.
참조할 테이블의 참조할 컬럼명이 생략이 되면, PRIMARY KEY로 설정된 컬럼이 자동 참조할 컬럼이 된다.

✏ CHECK 제약조건

컬럼에 기록되는 값에 조건 설정을 할 수 있다.

CHECK (컬럼명 비교연산자 비교값)
주의 : 비교값은 리터럴만 사용할 수 있음, 변하는 값이나 함수 사용 못한다.

좋은 웹페이지 즐겨찾기