Patrick's 데이터 세상

DDL_CREATE 구문 본문

Programming/Oracle

DDL_CREATE 구문

patrick610 2020. 6. 21. 14:34
반응형
SMALL

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);

 

 

 

 

 

 

 

반응형
LIST

'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
Comments