관리 메뉴

사과하는 제라스

3. SQL 1 - DDL 본문

대학 전공 공부/데이터베이스1

3. SQL 1 - DDL

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
    반응형

    '대학 전공 공부 > 데이터베이스1' 카테고리의 다른 글

    SQL Examples  (0) 2022.04.25
    3. SQL 1 - DML  (0) 2022.04.25
    3. SQL 1 - Intro  (0) 2022.04.24
    2. 관계형 데이터 모델<하>  (0) 2022.04.24
    2. 관계형 데이터 모델 <상>  (0) 2022.04.24