T'SPACE

다채로운 에디터들의 이야기

컴퓨터공학/데이터베이스 DB

데이터베이스 SQL DDL과 DML

Tonny Kang 2024. 10. 18. 14:38
반응형

데이터 정의 언어 Data-Defining Language(DDL)


  • 관계형 스키마를 정의합니다
  • 테이블과 그 속성을 생성/수정/삭제합니다
  • 타입
  • 무결성 제약 조건

흔한 데베 수업 풍경, 여자 남자 성비 바뀐듯

테이블 생성하기


CREATE TABLE r(
    A1 D1,
    A2 D2,
    ...,
    An Dn,
    (무결성-제약조건1),
    ...,
    (무결성-제약조건k)
);

 

r은 관계의 이름입니다
각 A는 관계 r의 스키마에 있는 속성 이름입니다
D는 속성 A의 도메인에 있는 값들의 데이터 타입입니다

  • SQL 키워드는 대소문자를 구분하지 않습니다 ↔ 하지만 문자열 값은 구분합니다
    → 'Strings'처럼 작은따옴표를 사용합니다
    → 문자열 내에서는 작은따옴표를 두 번 사용합니다 → 'O''Neill'
  • 테이블을 선언할 때 포함할 내용
    • 속성과 그 타입들
    • 기본 키 정의
    • 제약 조건
    • 기타
numeric(4,0)

 

Q. 왜 int를 사용하지 않고 numeric을 사용했나요?

  • 정밀도 제어:
    NUMERIC(4, 0)은 정확히 4자리 숫자를 가진 열을 명시적으로 정의하며, 소수점 이하 자리는 0입니다. 이는 4자리 범위를 벗어나는 값(예: 12345)이 저장되지 않도록 보장하여 데이터 크기와 정밀도에 대한 더 많은 제어를 제공합니다. 반면에 INT는 훨씬 더 큰 범위를 허용하며, 이는 특정 사용 사례에서는 불필요할 수 있습니다.
  • 저장 효율성:
    일부 데이터베이스 시스템은 정의된 데이터 타입에 따라 저장 공간을 최적화합니다. NUMERIC(4, 0)을 사용하면 데이터베이스가 INT에 비해 더 적은 공간을 할당할 수 있습니다. 특히 해당 열에 작은 숫자(4자리 ID와 같은)만 예상되는 경우에 그렇습니다.
반응형

타입: 날짜와 시간


DATE 값의 형식:

  • 'yyyy-mm-dd'
    TIME 값의 형식:
  • 'hh:mm:ss'
    → '15:30:02.5' → 초의 소수점 또는 분수가 가능합니다

CREATE TABLE에서의 무결성 제약 조건

  • 기본 키
primary key (A1, ..., An)
  • 외래 키
foreign key (A1, ..., Am) references r(B1, ..., Bm)
    on delete set null

B는 r의 기본 키입니다
"on delete set null" → 참조된 관계에서 참조된 값이 삭제될 때, 해당 값을 null로 설정합니다

  • not null

테이블 수정하기 Data Manipulation Language (DML)


ALTER TABLE


열을 테이블에 추가하거나 제거할 수 있습니다

  • ADD로 열 추가하기
ALTER TABLE Customer
    ADD height INTEGER DEFAULT(1); -> 기본값이 없으면 기본값은 null이 됩니다
  • DROP으로 열 제거하기
ALTER TABLE Customer
    DROP height;

 

728x90

테이블 삭제하기


DROP TABLE
모든 레코드뿐만 아니라 테이블 스키마도 삭제합니다

DROP TABLE Customer;

 

DELETE FROM
관계는 그대로 두고 레코드만 삭제합니다

DELETE FROM Customer;

 

데이터베이스 수정


레코드 삽입하기



INSERT 문을 사용하여 기존 테이블에 레코드를 삽입합니다

INSERT INTO R(a1, a2, ...) VALUES (v1, v2, ...)

 

레코드 삭제하기



DELETE 문을 사용하여 레코드를 삭제합니다

DELETE FROM R WHERE 조건

→ 조건이 없으면 모든 레코드가 삭제됩니다
레코드 수정하기


UPDATE 문을 사용하여 테이블의 레코드를 수정합니다

UPDATE R SET 구문 WHERE 조건

 

반응형