2 분 소요

DDL

DDL은 테이블의 기본 구조를 만드는 언어이다.

생성(create), 변경(alter), 삭제(drop)의 기능을 가지고 있다.

CREATE

테이블을 생성하는 방법은 여러가지가 있다.

가장 대표적인 방법을 알아보자

CREATE TABLE 테이블명(
칼럼명 데이터타입(최대 크기) 추가설정,
NAME Varchar2(20) Primary key
);

제약조건을 사용한 테이블 생성

DDL에선 여러 제약조건을 이용해 테이블의 구조를 만들 수 있다.

CREATE TABLE 테이블1 (
칼럼명a varchar2(20) primary key, -- 기본키 생성
칼럼명b number(10,2) not null -- 최대 크기 10의 숫자타입 소수점 둘째자리까지
);

CREATE TABLE 테이블2(
칼럼명a varchar2(20) not null,
칼럼명c number(10) default 0, -- default 선언시 기본 값이 0으로 설정
칼럼명d date default sysdate, -- 현재 날짜를 기본 값으로 설정
Constraint 키이름 foreign key (칼럼명a) references 테이블1(칼럼명a)
    -- Constraint 을 사용하여 키와 키의 종류를 설정 가능하다
    -- 외래키의 경우 references 를 이용해 마스터테이블명(칼럼명)으로 연결해준다.
);

CASCADE 사용

cascade 옵션은 기본키와 외래키의 참조 관계에서 마스터 테이블의 기본키 속성 값이 변경 되었을 때 자동으로 변경 된 정보가 반영 될 수 있도록 연결한다.

CREATE TABLE 테이블1 (
칼럼명a varchar2(20) primary key, -- 기본키 생성
칼럼명b number(10,2) not null -- 최대 크기 10의 숫자타입 소수점 둘째자리까지
);

CREATE TABLE 테이블2(
칼럼명a varchar2(20) not null,
칼럼명c number(10) default 0, -- default 선언시 기본 값이 0으로 설정
칼럼명d date default sysdate, -- 현재 날짜를 기본 값으로 설정
Constraint 키이름 foreign key (칼럼명a) references 테이블1(칼럼명a) on DELETE CASCADE
);

위의 경우에 만약 테이블 1에서 칼럼명a의 값을 삭제한다면 테이블 2의 칼럼명a의 값 또한 자동으로 삭제된다.

일르 통해 참조 무결성을 준수할 수 있다.

만약 테이블1에 칼럼명a의 존재하지 않는 값이 테이블 2에 존재한다면 이는 참조 무결성 위배라고 볼 수 있다.

ALTER

ALTER 문을 통해 테이블의 여러 설정들을 변경 할 수 있다.

테이블 명 변경

ALTER TABLE 변경전테이블명 RENAME TO 변경후테이블명 ;

칼럼 추가

ALTER TABLE 테이블명 ADD (칼럼명 데이터타입(크기) 제약조건);

칼럼 변경

ALTER TABLE 테이블명 MODIFY (변경할 칼럼명 데이터타입(크기) 제약조건);

칼럼 변경을 할 때에 주의 할점은 기존 칼럼의 속성 값과 바뀔 데이터 타입이 다르다면 오류가 난다는 것이다.

칼럼 삭제

ALTER TABLE 테이블명 DROP COLUMN 칼럼명

칼럼명 변경

ALTER TABLE 테이블명 RENAME COLUMN 변경전 칼럼명 TO 변경  칼럼명

DROP

테이블 삭제는 drop table문을 통해 삭제하는데 구조와 데이터 모두 지우는 기능을 하니 사용에 매우 주의를 기해야한다.

DROP TABLE 테이블명 CASCADE CONSTRAINT ; 

위의 cascade constraint 를 이용해주면 슬레이브 테이블과 관련된 제약 조건까지 모두 삭제한다.

VIEW

DDL 은 VIEW 라는 가상의 테이블을 만들고 수정,삭제 할 수 있다.

VIEW란 실제 데이터를 가지고 있지 않고 테이블을 참조해서 원하는 칼럼만을 조회 할 수 있게 한다.

VIEW는 데이터 딕셔너리에 SQL문 형태로 저장하되 실행 시에만 참조된다.

VIEW 의 특징

  • 참조한 테이블이 변경되면 뷰도 변경된다.
  • 입력 수정 삭제에 제한이 있다. (조회 목적성이 강함)
  • 특정 칼럼만 조회시켜서 보안성을 향상 시킨다.
  • 생성된 뷰는 변경할 수 없고 변경을 원하면 삭제후 재생성한다.
  • ALTER문을 사용해서 변경 불가능.

VIEW의 장단점

  • 장점
    • 특정 칼럼만 조회함으로서 보안성을 높임
    • 데이터 관리가 간단함
    • SELECT문이 간단함
    • 하나의 테이블에 여러개의 뷰 가능
  • 단점
    • 독자적인 인덱스 불가능
    • 삽입 수정 숙제 제한
    • 구조 변경 불가능

끝.

댓글남기기