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 |