반응형
개요
DDL(데이터 정의어)는 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
명령어는 크게 CREATE, ALTER, DROP 으로, 이에 대해 알아본다.
CREATE
1. CREATE SCHEMA
스키마를 정의하는 명령문
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
2. CREATE DOMAIN
도메인을 정의하는 명령문
- 임의의 속성에서 취할 수 있는 값의 범위가 SQL에서 지원하는 전체 데이터 타입의 값이 아니고 일부분일 때, 그 값의 범위를 도메인으로 지정 가능
CREATE DOMAIN 도메인명 [AS] 데이터_타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK (범위값)];
*SQL문에서 [] 처럼 대괄호로 둘러쌓인 명령어는 생략 가능하다는 의미
- 데이터 타입 : SQL에서 지원하는 데이터 타입
- 기본값 : 데이터를 입력하지 않았을 때 자동으로 입력되는 값
예시) 성별이 '남' 또는 '여' 와같이 정해진 1개의 문자로 표현되는 도메인 SEX의 정의
CREATE DOMAIN SEX CHAR(1) #문자형 크기 1자
DEFAULT '남'
CONSTRAINT VALID-SEX CHECK (VALUE IN ('남', '여'))]; # 남 여 중 하나 만 결정
3. CREATE TABLE
테이블을 정의하는 명령문
CREATE TABLE 테이블명
(속성명 데이터_타입 [DEFAULT 기본값][NOT NULL], ...
[, PRIMARY KEY(기본키_속성명, ...)]
[, UNIQUE(대체키_속성명, ...)]
[, FOREIGN KEY(왜래키_속성명, ...)]
[REFERENCES 참조테이블(기본키_속성명, ...)]
[ON DELETE 옵션]
[ON UPDATE 옵션]
[, CONSTRAINT 제약조건명][CHECK (조건식)]);
예시) <학생> 테이블 정의
CREATE TABLE 학생
(이름 VARCHAR(15) NOT NULL,
학번 CHAR(8),
생년월일 DATE,
...
...
PRIMARY KEY(학번), #기본키는 학번
FOREIGN KEY(전공) REFERENCES 학과(학과코드) #왜래키는 학과코드 속성 참조
ON DELETE SET NULL #삭제시 null
ON UPDATE CASCADE, #학과코드 변경 시 모든 튜플 '전공' 속성 값도 같은 값으로
CONSTRAINT 생년월일제약
CHECK(생년월일>='1980-01-01'));
4. CREATE VIEW
뷰(View) 정의하는 명령문
CREATE VIEW 뷰명[(속성명[, 속성명, ...])]
AS SELECT문;
- SELECT의 결과로서 뷰 생성
예) <고객>테이블에서 '주소'가 '안산시' 인 고객들의 '성명'과 '전화번호'를 '안산고객' 이라는 뷰로 정의
CREATE VIEW 안산고객(성명, 전화번호)
AS SELECT 성명, 전화번호
FROM 고객
WHERE 주소 = '안산시'
5. CREATE INDEX
인덱스를 정의하는 명령문
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 [ASC | DESC] [,속성명 [ASC | DESC]])
[CLUSTER];
- UNIQUE : 중복 값이 없는 속성으로 인덱스 생성. 없으면 중복값 허용
- 정렬 여부 지정
- ASC : 오름차순
- DESC : 내림차순
- 생략 : 오름차순
- CLUSTER : 사용하면 인덱스가 클러스터드 인덱스로 설정
예시) <고객> 테이블에서 UNIQUE한 특성을 갖는 '고객번호' 속성에 대해 내림차순으로 정렬하여 '고객번호_idx' 라는 이름으로 인덱스를 정의하시오
CREATE UNIQUE INDEX 고객번호_idx
ON 고객(고객번호 DESC)
ALTER
ALTER TABLE
테이블에 대한 정의를 변경하는 명령문
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
- ADD : 새로운 속성(열) 추가
- ALTER : 특정 속성 Default 값 변경에 사용
- DROP COLUMN : 특정 속성 삭제에 사용
DROP
DROP
스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문이다.
DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
DROP DOMAIN 도메인명 [CASCADE | RESTRICT];
DROP TABLE 테이블명 [CASCADE | RESTRICT];
DROP VIEW 뷰명 [CASCADE | RESTRICT];
DROP INDEX 인덱스명 [CASCADE | RESTRICT];
DROP CONSTRAINT 제약조건명;
- CASCADE : 제거할 요소를 참조하는 다른 모든 개체 함께 제거
- RESTRICT : 다른 개체가 제거할 요소를 참조 중일때는 제거 취소
출처
자료 참고:
시나공 정보처리기사 필기 2022를 참고하여 작성되었습니다
반응형
'정보처리기사 > 3과목' 카테고리의 다른 글
[정보처리기사 필기] DML 구문 정리 (0) | 2022.02.18 |
---|---|
[정보처리기사 필기] DCL 구문 정리 (0) | 2022.02.18 |
[정보처리기사 필기] 물리 데이터베이스 설계 (0) | 2022.02.18 |
[정보처리기사 필기] 데이터베이스 이중화 / 서버 클러스터링 / 보안 / 백업 (0) | 2022.02.18 |
[정보처리기사 필기] 스토리지(Storage)란? (0) | 2022.02.17 |
댓글