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 |
'프로그램 > DataBase' 카테고리의 다른 글
[Oracle] JOIN (0) | 2021.02.16 |
---|---|
[Oracle] 프로시저, 함수의 이해 (0) | 2021.02.16 |
[Oracle] 뷰(VIEW)의 이해 (0) | 2021.02.16 |
[Oracle] 쿼리문의 이해 및 자주 쓰는 내장 함수 이해 (0) | 2021.02.16 |
[Oracle] 오라클 접속 및 PLSQL 사용법 (0) | 2021.02.16 |