Data Define Language

 - SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 명령문

 - DDL로 정의된 내용은 Meta-data가 되며, 시스템 카탈로그에 저장한다.






CREATE SCHEMA

 - 스키마를 정의하는 명령문

 - 스키마의 식별을 위해 스키마 이름과 소유권자나 허가권자를 정의한다.


CREATE SCHEMA 스키마이름 AUTHORIZATION 사용자아이디;

ex ) CREATE SCHEMA 대학교 AUTHORIZATION 홍길동







CREATE DOMAIN

 - 도메인을 정의한느 명령문이다.

 - 임의의 애트리뷰트에서 취할 수 있는 원자값의 범위가 SQL에서 지원하는 data_type에 

포함하는 전체 값이 아니고 일부분일 때 사용자가 그 값의 범위를 사용자의 data_type으로 정의


CREATE DOMAIN 도메인이름 data_type

[DEFAULT 초기값정의]

[CONSTRAINT VALID-도메인이름 CHECK (범위값)];

ex ) CREATE DOMAIN SEX CHAR(1)

DEFAULT '여'

CONSTRAINT VALID-SEX CHECK(VALUE IN ('남', '여', '?'));







CREATE TABLE

 - 기본 테이블을 정의하는 명령문


CREATE TABLE 기본테이블이름

(속성명 data_type [NOT NULL], ... ,

PRIMARY KEY(기본키속성명),

UNIQUE(대체키속성명),

FOREIGN KEY(외래키속성명),

REFERENCES 참조테이블(기본키속성명),

CONSTRAINT 제약조건명 CHECK(조건식));

ex ) CREATE TABLE 학생

(이름 VARCHAR(15) NOT NULL,

학번 VARCHAR(15) NOT NULL,

전공 VARCHAR(15) NOT NULL,

성별 SEX,

생년월일 DATE,

PRIMARY KEY(학번),

FOREIGN KEY(전공),

REFERENCE 학과(학과코드),

CONSTRAINT 성별제약 CHECK(성별='남'));







CREATE INDEX

 - 인덱스를 정의하는 명령문


CREATE [UNIQUE] INDEX 인덱스이름

ON 기본테이블이름({속성이름[ASC | DESC],})

[CLUSTER]

UNIQUE : 기본키나 대체키 같은 중복되는 값이 없는 속성으로 인덱스를 생성할 때

ASC : 오름차순 정렬

DESC : 내림차순 정렬

CLUSTER : 동일 인덱스 값을 갖는 튜플들을 그룹으로 묶을 때 사용


ex ) CREATE UNIQUE INDEX 고객번호INX

ON 고객(고객번호 ASC);








ALTER TABLE

 - 테이블에 대한 정의를 변경하는 명령문


ALTER TABLE 기본테이블이름 ADD 속성이름 data_type [DEFAULT '기본값'];

ALTER TABLE 기본테이블이름 ALTER 속성이름 [SET DEFAULT '기본값'];

ALTER TABLE 기본테이블이름 DROP 속성이름 [CASCADE];

ADD : 새로운 속성을 추가

ALTER : 특정 속성의 DEFAULT 값을 변경할 때 사용

DROP : 특정 속성을 삭제할 때 사용


ex ) ALTER TABLE 학생 ADD 학년 VARCHAR(3);







DROP

 - 스키마, 도메인, 기본 테이블 , 뷰 테이블, 인덱스 등을 삭제하는 명령문이다.


DROP SCHEMA 스키마이름 [CASCADE | RESTRICTED];

DROP DOMAIN 도메인이름  [CASCADE | RESTRICTED];

DROP TABLE 기본테이블이름  [CASCADE | RESTRICTED];

DROP VIEW 뷰이름  [CASCADE | RESTRICTED];

DROP INDEX 인덱스이름

CASCADE : 삭제할 요소를 참조하는 다른 모든 개체를 함께 삭제한다.

RESTRICTED : 삭제할 요소를 다른 개체가 참조중일 때는 삭제를 취소한다.




'ComputerScience > Database' 카테고리의 다른 글

뷰(VIEW)  (0) 2017.10.25
SQL - DML  (0) 2017.10.20
정규화  (0) 2017.10.19

+ Recent posts