26.9.3 / Thu

BaO·2026년 9월 3일

TIL

목록 보기
16/32

SQL

데이터 타입

  • 각 컬럼에 어떤 종류의 값을 저장할 수 있는지 정의
  • 잘못된 형식의 데이터가 저장되는 것을 방지하고, 저장공간을 효율적으로 활용 가능

스키마

  • 데이터 베이스의 구조와 제약 조건을 정의한 설계도
  • 테이블, 컬럼, 데이터타입, 제약 조건 등의 정보가 포함
  • 데이터가 일정한 구조와 규칙을 유지할 수 있도록 돕는다.

DDL ( Data Definition Language )

  • 데이터 정의어

    • CREATE
    CREATE 테이블 명 (
      컬럼명1 데이터타입 제약조건
      컬럼명2 .....
    )
    
    -- 제약조건 종류
    -- PRIMARY KEY : 기본키 설정 : 중복 금지, NULL 금지
    -- NOT NULL : NULL 금지
    -- UNIQUE : 중복 금지, NULL 허용
    -- CHECK : 특정 조건에 해당 하는지 체크
    
    -- 자동 증감 : int generated always as identity -> 표준방식
    -- postgreSQL: SERIAL (4byte), BIGSERIAL(8byte)
    • ALTER : 테이블 수정
    # 신규 컬럼 추가
    alter table member
    add column phone varchar(20);
    
    # 기존 컬럼 수정
    alter table member
    alter column name type varchar(100);
    
    # 신규 제약 조건 추가
    ALTER TABLE member
    ALTER CONSTRAINT phone_unique UNIQUE (phone)
    
    • DROP
    DROP TABLE member
    • TRUNCATE : 테이블 구조를 유지하며 초기화

DML

  • 데이터 조작어
    • INSERT
    # 컬럼명 맞춤 값 대입
    INSERT INTO 테이블명 ( 컬럼명 ) values ( 값 )
    # 전체 컬럼 자동 맞춤 값 대임
    INSERT INTO 테이블명 values ( 값)
    # 여러개의 값 한번에 대입
    INSERT INTO 테이블명 values (값1), (값2), (값3) ....
    • UPDATE
    • DELETE
    • SELECT

DCL

  • 데이터 제어어
    • GRANT : 권한 부여
    • REVOKE : 권한 취소

트랙잭션

  • COMMIT : 데이터를 DB에 영구 반영
  • ROLLBACK : COMMMIT 전 반영 내용 돌리기

데이터 무결성 제약조건

  • 잘못된 데이터가 존재하면 데이터의 신뢰도가 떨어질 수 있으므로 데이터가 정확하고 일관된 상태를 유지하는것.

도메인 무결성 제약 조건 / 자료형

  • 테이블 생성시에 정의된 자료형 외에 다른 자료형 입력 불가능

개체 무결성 제약 조건 / 기본키

  • 테이블 내에서 각 행을 유일하게 식별하는 열
  • 중복 금지, NULL 금지

참조 무결성 제약조건 / 외래키

  • 다른 테이블의 기본키를 참조하는 열
  • 부모 쪽 테이블에 없는 참조값을 자식 테이블이 사용 불가능
  • 부모 쪽 레코드에 자식 레코드가 있으면 부모 레코드 삭제 불가능
  • ON DELETE
    • CASCADE : 부모 레코드 삭제 -> 자식 레코드도 함께 삭제
    • SET NULL : 부모 레코드가 삭제 -> 자식 레코드의 참조 컬럼의 값을 NULL로 변환

데이터베이스 정규화

  • 불필요한 데이터 중복, 이상현상 개선을 위해 테이블의 구조를 단계적으로 개선하는 과정
  • 테이블을 분리함으로써 데이터 수정 및 관리가 쉬워지고 데이터의 일관성을 유지하기 쉽다

제1정규형 1NF

  • 원자값 유지, 하나의 컬럼에는 하나의 데이터만 존재해야 한다

제2정규형 2NF

  • 기본키가 두개인 경우

제3정규형 3NF

  • 기본키가 한개인 경우임에도 불구하고 데이터의 분리가 가능한 데이터의 집합

DQ


0개의 댓글