Xerath(제라스) 2022. 4. 25. 01:08
728x90
반응형

- DDL(Data Definition Language)

 

기능

1) 관계 스키마

2) 속성의 도메인

3) 무결성 제약

4) 관계에 연관되는 인덱스

5) 관계 저장을 위한 디스크 상의 물리적 구조

6) 관계에 연관되는 보안 및 권한 부여/취소

 

SQL 도메인 타입

1) char(n) : 길이가 n인 문자열

2) varchar(n) : 최대 길이 n까지 가능한 문자열 → Oracle에선 varchar2(n)

3) int : Integer형

4) smallint : Small Integer형

5) numeric(p, d) : 유효숫자 p개, 소수점 다음 숫자 d개의 수 → Oracle에선 decimal(p, d), number(p, d)

ex) numeric(7, 2) → xxxxx.xx

6) float(n) : 최소 n자리 이상의 float형 숫자

 

- 테이블 생성

ex)

Create table professor (
	pID char(5),
	name varchar(20) not null, //not null 같은 걸 무결성 제약이라고 하며, 이는 따로 이름을 붙일 수 있다.
	deptName varchar(20),
	salary numeric(8, 2)
);

 

- 무결성 제약(Integrity Constraint)

대표적인 무결성 제약 3가지

1) A1 char(8) not null

→ A1 속성은 널 값을 가질 수 없음.

 

2) primary key (A1,A2)

→ (A1,A2)는 주 키.

 

아래처럼 주 키가 한개일 경우엔 다음처럼 속성 타입 선언부분에 같이 써줘도 무방함.

A1 char(8) primary key,

 

3) foreign key (A2) references department(K)

→ A2는 외래키로 department table의 주 키를 참조함. 이때 주키는 K인데 department 뒤에 K는 생략해도 무방함.(안 써줘도 외래키는 알아서 주 키를 참조할 거니까)

 

아래처럼 무결성 제약이 이름을 가질 수도 있는데, 후에 해당 제약을 삭제하거나 변경할 때 용이함.

constraint myFirstForeignKey foreign key (deptName) references department(deptName)

 

+) check (gender in ('F', 'M'))

→ gender 속성은 반드시 'F'나 'M'을 값으로 가져야 함.

 

 

- 스키마 삭제

Drop table student; //Drop은 스키마(table) 자체를 날려버림.

Delete from student Where sID>20180000; //Delete는 Where절을 쓸 수 있고, 조건으로 원하는 tuple을 날림.

Truncate table student; //Truncate는 Where절을 쓸 수 없고, 스키마는 남긴 채 안의 tuple들을 모두 날림.

 

- 스키마 변경

ex1) Alter table r add 속성 도메인;

Alter table r add university varchar(10) not null

 

ex2) Alter table r drop 속성;

Alter table r drop university;

 

 

 

 

728x90
반응형