[ORACLE] DDL 데이터 정의어

    ★ DDL (Data Definetion Language)

    데이터의 논리적인 물리적 구조를 정의하는 언어로

    DB구조, 데이터 형식, 접근 방식 등  DB를 구축하거나 수정하는 목적으로 사용된다.

     

    대표적으로 CREATE, ALTER, DROP가 있다.

     

    명령어

    내용

    CREATE TABLE

    테이블 생성

    ALTER TABLE

    테이블 수정

    DROP TABLE

    테이블 삭제

    TRUNCNATE

    테이블 내용만 삭제

     

    CREATE TABLE

    CREATE TABLE TEST
    (
    CUSTNO NUMBER,
    CUSTNAME VARCHAR2(10)
    );

    TEST TABLE이라는 이름으로

    CUSTNO, CUSTNAME 칼럼(속성)을 가진 테이블을 생성한다.

     

    CREATE TABLE
    (
    속성명 속성타입 [속성 값]
    );

    가장 기본적이며, 생성의 규칙이다.

    한개의 임의의 속성명과 속성명에 담을 숫자, 문자, DATE 등 타입 지정 및 옵션을 설치할 수가 있다.

     

    타입명

    설명

    NUMBER

    숫자만 담는다

    VARCHAR, VARCHAR2

    문자열을 담는다

    DATE

    날짜, 시간등을 담는다

    속성 값은  속성 타입(메모리 최대 크기)으로 지정이 된다.

    단, NUMBER, DATE는 최대크기를 생략하고 생성할 수가 있다.

     

     

    속성 이름

    내용

    PRIMARY KEY

    테이블의 기본키 정의한다.

    기콘키는 NOT NULL, UNIQUE 제약이 포함되어 있다.

    FOREIGN KEY

    외래 키를 정의한다.

    참조 대상을 테이블 이름(열 이름)으로 명시한다.

    UNIQUE

    해당 열은 중복을 제외한다.

    NOT NULL

    해당 열은 NULL값을 제외한다.

    CHECK

    개발자가 정의하는 제약 조건

    속성값을 이어 붙임으로써, 테이블에 더욱 명확한 명시를 주고

    테이블에 제약조건을 적절히 사용함으로써, ORACLE ERROR 방지 및 중복된 데이터를 최소화할 수 있게 된다.

    또한 PRIMARY KEY와 FOREIGN KEY를 활용해서 데이터의 관리 또한 유용하게 할 수 있게 도와준다.

     

    이제 이 모든 속성을 적절하게 사용 하게 될 경우에는 아래와 같은 코드가 완성된다.

     

    CREATE TABLE TEST
    (
    CUSTNO NUMBER,
    CUSTNAME VARCHAR2(20) NOT NULL,
    PRIMARY KEY(CUSTNO)
    );

    위의 내용의 복습한 내용이다.

     

    CUSTNO에 PRIMARY KEY를 부여하여 NOT NULL과 UNIQUE 속성을 부여했다.

    그리고 CUSTNAME에 NOT NULL을 입력하여 무조건 값을 입력하게 만들었다.

     

     

    ALTER TABLE

    ALTER는 테이블에 대한 정의를 변경할 때 사용한다.

    DB를 처음 배울 때에 ALTER는 매우 친숙하지 못하고 어렵게 느껴진다. 그래서 DROP 사용 후 CREATE를 사용하는 경우가 번번이 일어나는데, 만약 TABLE안에 데이터가 중요하게 여겨질 경우 TABLE에 대한 정의를 변경해야 하므로 기초적으로 배워두는 것도 나쁘지 않다.

     

    ALTER 내용

    내용

    ALTER TABLE 테이블명 ADD 속성명 데이터 타입

    TABLE의 속성값을 추가한다.

    ALTER TABLE 테이블명 MODIFY 속성명 데이터 타입

    TABLE의 속성타입을 변경한다.

    ALTER TABLE 테이블명 DROP COLUMN 속성명

    TABLE의 속성을 삭제한다.

    ALTER TABLE 테이블명 RENAME TO 새로운 테이블명

    TABLE의 이름을 변경한다.

    ALTER TABLE 테이블명 RENAME COLUMN 기존 칼럼명 TO 새로운 칼럼명

    TABLE의 속성명을 변경한다.

     

    ALTER TABLE의 기본적인 사용법과 예시이다.

     

    ALTER TABLE TEST RENAME TO EMP;

    TEST 테이블 명을 EMP 테이블 명으로 변경한다.

     

    ALTER TABLE EMP ADD BIRTHDAY DATE;

    EMP 테이블에 DATE타입을 가진 BIRTHDAY라는 속성명을 추가한다.

     

     

    DROP TABLE

    DROP TABLE 테이블명 [CASCADE  OR  RESTRICTED];

    DROP TABLE 테이블명.

    테이블을 삭제한다.

    DROP TABLE 속성

    내용

    CASCADE

    제거할 요소를 참조하는 다른 모든 개체를 함께 제거

    RESTRICTED

    다른 개체가 제거할 요소를 참조 중일 때는 제거를 취소

    DROP TABLE의 속성명은 생략이 가능하며, 속성 부여에 따라서 FOREIGN KEY의 유무에 따라 결과가 달라질 수가 있다.

     

    TRUNCNATE TABLE

    DROP TABLE과 비슷하지만, TABLE 자체를 완전히 지우는 DROP과 다르게

    TRUNCATE는 TABLE을 새로 만든 것처럼 내용만 삭제한다.

     

    TRUNCNATE TABLE TEST;

    DROP 테이블과 형식은 같다.

    반응형

    댓글

    Designed by JB FACTORY