[TIL] DDL /

VonBielefeld·2023년 12월 21일
0

TIL

목록 보기
32/32

데이터 정의어 (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의 애트리뷰트명이다
    - 릴레이션의 애트리뷰트를 제거하는데 사용되지만 지원하지 않는 시스템이 많다.

0개의 댓글