데이터 정의어 (Data Definition Language)
릴레이션의 집합뿐만 아니라 각 릴레이션에 관한 정보의 지정을 허용한다.
- 각 릴레이션의 스키마
- 각 애트리뷰트에 관련된 값들의 도메인
- 무결성 제약조건
- 각 릴레이션에 유지되어야 할 인덱스 집합
- 각 릴레이션에 대한 정보 보안과 인증
- 디스크 상으ㅢ 각 릴레이션의 물리적 저장 구조
SQL에서의 도메인 유형
- char(n) 사용자가 지정한 길이 n을 가진 고정길이 문자열
- varchar(n) 사용자가 지정한 최대 길이 n 을 가진 가변길이 문자열
- int 정수(기계 종속인 정수들의 유한 부분 집합)
- smallint 작은 정수
- numeric(p,d). 사용자가 지정한 정밀도 p 자리수와 소수점 이하 n 자리를 가진 고정점 수
- real, double precision. 기계 종속 정밀도를 가진 부동 소수점 및 배정도 부동 소수점 수
- float(n). 적어도 n자리수의 사용자가 지정한 정밀도를 가진 부동 소수점 수
Create Table 구조
SQL 릴레이션은 create table 명령을 사용해 정의한다
create table r ( A1 D1, A2 D2, ..., An Dn,
(integrity-constraint1), ..., (integrity-constraintk))
-> r 은 릴레이션명이다.
-> 각 Ai는 릴레이션 r의 스키마내의 애트리뷰트명이다.
-> Di 는 애트리뷰트 Ai의 도메인내 값들의 데이터 형이다.
create table instructor (
ID char(5),
name varchar(20) not null,
dept_name varchar(20),
salary numeric(8,2)
)
Create Table에서의 무결성 제약조건
- not null
- primary key (A1, ..., An )
- foreign key (Am, ..., An ) references r
create table student ( ID varchar(5), name varchar(20) not null, dept_name varchar(20), tot_cred numeric(3,0), primary key (ID), foreign key (dept_name) references department) );
Drop 과 Alter Table 구조
- drop table student
-제거될 릴레이션에 관한 모든 정보를 삭제한다.
- delete from student
- 릴레이션의 내용만을 삭제하고 기본 정보는 유지된다.
- alter table
- alter table r add A D
- A는 릴레이션 r에 추가될 애트리뷰트명이고 D는 A의 도메인이다.
- 릴레이션 내의 모든 튜플에는 새로운 애트리뷰트의 값으로 널이 할당된다.
- alter table r drop A
- A는 릴레이션 r의 애트리뷰트명이다
- 릴레이션의 애트리뷰트를 제거하는데 사용되지만 지원하지 않는 시스템이 많다.