[DB] Introduction to SQL

1 분 소요

Data Definition Lauguage

  • SQL의 DDL은 relatioin에 관한 정보를 만든다.
  • 각 relation의 스키마
  • 각 속성들의 domain
  • 무결성 제약조건
  • 각 relation의 인덱스 정보 / 보안, 권한 정보

Domain Types in SQL

  • char(n): 길이가 n인 고정 길이 문자열
  • varchar(n): 최대 길이가 n인 가변 길이 문자열
  • int
  • smallint
  • numeric(p, d): 고정 소수점 실수, p는 부호를 포함한 전체 숫자의 길이, s는 소수점 이하 숫자의 길이
  • real, float(n): float는 길이 n을 사용자가 설정함
  • NULL, NOT NULL: 속성이 null값을 가질 수 있는지의 여부를 선언
  • ex: ID VARCHAR(20) NOT NULL, Deposit INT DEFAULT 0

Create Table Construct

create table r (A1 D1, A2 D2, ... , An Dn),
               (integrity-constraint1),
               ...,
               (integrity-constraintk)
)
create table instructor (
    ID          char(5),
    name        varchar(20) not null,
    dept_name   varchar(2),
    salary      numeruc(8, 2)
)

Integrity Constraints in Create Table

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(dept_name));
)
  • not null: null값을 가질 수 없고 해당 속성의 값이 null인 tuple를 삽입, 수정하는 동작은 거부됨
  • primary key(객체 무결성 제약조건): tuple의 유일성을 보장하기 위한 규칙으로 각 tuple를 식별하는 역할, null이나 중복되는 값을 가질수 없음
  • foreign key(A1, A2,,) references r(A1, A2,,): 외래키는 relation r의 기본키를 참조함, 외래키의 값은 r에 항상 그 값이 존재해야 한다.

Drop and Alter Table Constructs

  • drop table student: 테이블과 내용 모두 삭제
  • delete from dtudent: 내용만 삭제, 테이블 스키마는 유지
  • alter table: 기존 테이블에 새로운 속성을 추가하거나 기존 속성을 삭제
    • alter table r add A D (모든 tuple은 새로운 속성에 대해 null값을 가진다.)
    • alter table r drop A (삭제하는 속성이 다른 테이블에서 참조하는 속성인 경우 외래키 무결성 제약조건이 깨질 수 있으므로 조심해야한다.)

태그:

카테고리:

업데이트:

댓글남기기