Patrick's 데이터 세상
DDL_CREATE 구문 본문
CREATE 구문
테이블, 스키마, 도메인, 인덱스, 뷰 등을 정의(생성)하기 위해 사용하는 명령문입니다.
* 테이블 정의 형식
CREATE TABLE 테이블 이름 (
컬럼명1 DATATYPE [NOT NULL],
PRIMARY KEY(컬럼명1),
UNIQUE(컬럼명1),
FOREIGN KEY(컬럼명1) REFERENCES 참조테이블(컬럼명)
ON DELETE CASCADE | SET NULL | SET DEFAULT | NO ACTION
ON UPDATE CASCADE | SET NULL | SET DEFAULT | NO ACTION,
CONSTRAINT 제약조건명 CHECK(속성명=범위 값)
);
테이블 정의
CREATE TABLE 테이블 |
지정한 '테이블 이름'으로 테이블 생성합니다. |
컬럼명1 DATETYPE |
· 테이블을 구성하는 속성 수만큼 속성 이름과 데이터 타입 기입합니다. · [NOT NULL] : 테이블 생성 시 특정 속성 값에 'NULL'이 없도록 지정할 때 사용하며 생략 가능합니다. |
PRIMARY KEY(컬럼명1) |
테이블에서 기본키 속성을 지정할 때 사용합니다. |
UNIQUE(컬럼명1) |
· 대체키 지정 시 사용합니다. · 속성의 모든 값이 고유한 값을 가지도록 지정할 때 사용합니다. |
FOREIGN KEY(컬럼명1) REFERENCES 참조테이블(컬럼명) |
· 외래키를 지정할 때 사용합니다. · FOREIGN KEY(컬럼명) : 외래키로 사용될 속성 이름 기입합니다. · 참조 테이블(컬럼명) : 참조할 테이블 이름과 속성 이름 기입합니다. |
CONSTRAINT 제약조건명 CHECK(속성명=범위 값) |
테이블을 생성할 때 특정 속성에 대해 속성 값의 범위를 지정할 때 사용합니다. |
외래키 지정 시 옵션
ON DELETE |
참조 테이블의 튜플이 삭제되면 기본 테이블은 어떤 형태로 대처할지 선택합니다. |
ON UPDATE |
참조 테이블의 튜플이 변경되면 기본 테이블은 어떤 형태로 대처할지 선택합니다. |
CASCADE |
참조 테이블의 튜플에 삭제, 변화가 있는 경우 기본 테이블도 같이 연쇄적으로 삭제/변화가 되도록 할 때 사용합니다. |
SET NULL |
참조 테이블의 튜플에 삭제, 변화가 있는 경우 기본 테이블의 관련된 속성 값을 NULL 값으로 변경할 때 사용합니다. |
SET DEFAULT |
참조 테이블의 튜플에 삭제, 변화가 있는 경우 기본 테이블의 관련 속성값을 기본값으로 변경할 때 사용합니다. |
NO ACTION |
참조 테이블의 튜플에 삭제, 변화가 있는 경우 기본 테이블 아무런 변화가 없도록 지정할 때 사용합니다. |
데이터 타입
데이터 타입 |
표현 형식 |
varchar |
가변 길이 문자 데이터 (1~4000byte) |
varchar2 |
가변 길이 문자 데이터 (1~4000byte) - 권장 |
char |
고정 길이 문자 데이터 (1~2000byte) |
number |
숫자 가변 길이 데이터 |
date |
날짜 (7byte로 저장) |
clob |
단일 바이트 가변 길이 문자 데이터 (1~4Gbyte) |
기본 테이블 활용 테이블 정의
CREATE TABLE 테이블명
AS
SELECT 컬럼 FROM 테이블명;
기존 테이블의 컬럼을 활용하여 테이블을 생성하는 방법도 있습니다.
예시
CREATE TABLE STUDENT (
NAME VARCHAR2 ,
AGE NUMBER ,
GENDER VARCHAR2 NOT NULL
);
CREATE TABLE STUDENT
AS
SELECT NAME, AGE, GENDER FROM SCHOOL;
* 스키마 정의
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자;
일반 사용자에게 스미카에 대한 권한을 주기 위한 스키마를 만들기 위해 사용합니다.
예시
CREATE SCHEMA STUDENT_S AUTHORIZATION USER;
* 도메인 정의 형식
CREATE DOMAIN 도메인명 데이터타입
DEFAULT 기본값
CONSTRAINT 제약조건명 CHECK(VALUE IN(범위 값));
한 속성값의 범위를 지정하기 위해 사용합니다.
예시
CREATE DOMAIN professor VARCHAR2(10)
DEFAULT 'T'
CONSTRAINT s-professor CHECK(VALUE IN ('T', 'F'));
* 인덱스 정의 형식
CREATE UNIQUE INDEX 인덱트명
ON 테이블명(속성명 ASC | DESC)
CLUSTER ;
데이터베이스를 보다 효율적으로 검색하기 위해 인덱스를 만들고, 시스템에 의해 자동 관리됨
UNIQUE |
중복을 허용하지 않도록 인덱스를 생성합니다.(생략된 경우 : 중복 허용) |
ON 테이블명(속성명) |
· 지정된 테이블의 속성으로 인덱스를 만듭니다. · ASC | DESC : 인덱스로 사용될 속성값의 정렬 방법을 지정합니다. |
CLUSTER |
인접된 튜플들을 물리적인 그룹으로 묶어 저장 시 사용합니다. |
예시
CREATE UNIQUE INDEX stud_idx
ON student(major ASC);
'Programming > Oracle' 카테고리의 다른 글
DROP된 테이블 살리기 (0) | 2020.06.21 |
---|---|
DROP 구문 생성하는 쿼리 (0) | 2020.06.21 |
DDL_DROP 구문 (0) | 2020.06.21 |
DDL_ALTER 구문 (0) | 2020.06.21 |
DDL - SQL 정의어 (0) | 2020.06.21 |