DDL (Data Definition Language, 데이터 정의어)

DDL은 스키마, 도메인, 테이블 ,뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용하는 언어이다.

 

종류 역할
CREATE 데이터베이스, 테이블 등을 생성
ALTER  테이블을 수정
DROP 데이터베이스, 테이블을 삭제
TRUNCATE  테이블을 초기화

 


 

 

자료형

자료형

설명

CHAR

고정 길이의 문자 데이터

VARCHAR2

가변 길이의 문자 데이터

NUMBER

가변 길이의 숫자 데이터

DATE

날짜 및 시간 값

LONG

가변 길이의 문자 데이터 (최대 2GB)

LOB

이미지, 실행 파일 저장

 


 

■ CREATE

 

테이블 생성하기

 

1
2
3
4
5
6
7
8
9
CREATE TABLE 테이블명
       (속성명 데이터_타입 [NOT NULL], ...
       [, PRIMARY KEY (기본키_속성명, ...)]
       [, UNIQUE (대체키_속성명, ...)]
       [, FOREIGN KEY (외래키_속성명, ...)
              REFERENCES 참조테이블(기본키_속성명, ...)]
              [ON DELETE 옵션]
              [ON UPDATE 옵션]
       [, CONSTRAINT 제약조건명] [CHECK (조건식)]);

 



 

 

- NOT NULL : 지정한 열에 NULL을 허용하지 X (NULL을 제외한 데이터의 중복은 허용)

- PRIMARY KEY : 지정한 열이 유일한 값이면서 NULL을 허용하지 X (PRIMARY KEY는 테이블에 하나만 지정 가능)

- UNIQUE : 지정한 열의 값이 중복되지 않아야 함 (단, NULL은 값의 중복에서 제외)

- FOREIGN KEY : 외래키 속성과 참조 테이블에 관한 정보를 지정 한다. 외래키가 지정되면 참조 무결성의 CASCADE 법칙이 적용된다

- DEFAULT : DEFAULT 값을 정의 시 컬럼에 데이터 값이 입력되지 않은 경우 정의된 값이 자동 입력

- CHECK : 설정한 조건식을 만족하는 데이터만 입력 가능

- CONSTRAINT : 제약 조건의 이름을 지정한다

 

테이블 복사하기
CREATE TABLE 복사할 테이블 명 AS SELECT * FROM 기존 테이블 명

 

인덱스 생성하기

인덱스는 검색을 빠르게 하기 위해 만든 보조적인 데이터 구조이다.

1
2
3
4
CREATE [UNIQUE] INDEX 인덱스명
       ON 테이블명 (속성명 [ASC | DESC], ...)
      [CLUSTER]
cs

- CLUSTER : 지정된 키에 다라 튜플들을 그룹으로 지정하기 위해 사용한다.

■ ALTER

 

테이블 구조 변경하기

1. 컬럼 추가하기

1
ALTER TABLE 테이블명 ADD (컬럼명 데이터타입);
cs

 

2. 컬럼 제거하기

1
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
cs

 

3. 테이블 구조 변경하기

1
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;
cs

 

 

■ DROP

 

테이블까지 완전 삭제

1
DROP TABLE 테이블명 [CASCADE CONSTRAINT];
cs

CASCADE CONSTRAINT는 해당 테이블과 관계가 있던 참조 제약조건도 삭제한다는 것을 의미

 

■ RENAME

 

이름 변경하기

1. 테이블 명 변경하기

1
RENAME OLD테이블명 TO NEW테이블명;
cs

 

2. 컬럼 명 변경하기

1
ALTER TABLE 테이블명 RENAME COLUMN OLD컬럼명 TO NEW컬럼명;
cs

 

■ TRUNCATE

테이블의 데이터만 삭제

1
TRUNCATE TABLE 테이블명;
cs

 

 

제약조건

1. 제약조건 추가

1
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명);
cs

 

2. 제약조건 삭제

1
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
cs

 

 

+ Recent posts