ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [혼자 공부하는 SQL] 5장. 테이블과 뷰
    DB 2024. 4. 27. 04:09
    728x90

    제약조건의 기본 개념과 종류

    제약조건(constraint) : 데이터의 무결성을 지키기 위해 제한하는 조건

     

    MySQL에서 제공하는 대표적인 제약조건

    • PRIMARY KEY 제약조건
    • FOREIGN KEY 제약조건
    • UNIQUE 제약조건
    • CHECK 제약조건
    • DEFAULT 정의
    • NULL 값 허용

     

    기본 키 제약조건

    기본 키(primary key) : 데이터를 구분할 수 있는 식별자

    기본 키로 지정하면 클러스터형 인덱스가 자동으로 생성된다.

    테이블은 기본 키를 1개만 가질 수 있다. 따라서 테이블의 특성을 가장 잘 반영하는 열을 선택하는 것이 좋다.

    mem_id CHAR(8) NOT NULL PRIMARY KEY
    

     

    외래 키(foreign key) 제약조건

    두 테이블의 관계를 연결해주고, 그 결과 데이터의 무결성을 보장해주는 역할

    외래 키가 설정된 열은 다른 테이블의 기본 키와 연결된다.

    FOREIGN KEY(mem_id) REFERENCES 기준_테이블(열_이름)
    

    💡 기본 키 - 외래 키로 맺어진 후에는 기준 테이블의 열 이름이 변경되거나 삭제되지 않는다. 열 이름이 변경되면 참조 테이블의 데이터에 문제가 발생하기 때문이다.

    ⇒ 기준 테이블의 열을 수정하거나 삭제할 때 ON UPDATE CASCADE, ON DELETE CASCADE문을 사용한다.

     

    기타 제약조건

    고유 키(unique) 제약조건

    ‘중복되지 않는 유일한 값’을 입력해야 한다.

    • NULL 값 허용
    • 고유 키 여러 개를 설정 가능
    email CHAR(30) NULL UNIQUE
    

     

    체크(check) 제약조건

    입력되는 데이터를 점검하는 기능

    예를 들어, 평균 키에 마이너스 값이 입력되지 않도록 한다.

    height TINYINT UNSIGNED NULL CHECK (height >= 100) ****-- 100이상의 값만 입력
    

     

    기본 값(defalut) 정의

    값을 입력하지 않았을 때 자동으로 입력될 값을 미리 지정해 놓는 방법

    height TINYINT UNSIGNED NULL DEFAULT 160 ****-- 기본값 160
    

     

    널 값 허용

    NULL : NULL 값 허용하는 열

    NOT NULL : NULL값 허용하지 않는 열

     

    가상의 테이블 뷰

    뷰를 사용하면 사용자에게 테이블의 필요한 내용만 보이도록 할 수 있다.

    • 뷰는 테이블처럼 데이터를 가지고 있지 않다.
    • 뷰는 SELECT문으로 만들어져 있기 때문에 뷰에 접근하는 순간 SELECT가 실행되고 그 결과가 화면에 출력되는 방식이다.
    • 단순 뷰와 복합 뷰로 나뉜다.
      • 단순 뷰 : 하나의 테이블과 연관된 뷰
      • 복합 뷰 : 2개 이상의 테이블과 연관된 뷰

     

    뷰 생성

    CREATE VIEW 뷰_이름
    AS
    	SELECT 문
    

     

    뷰를 사용하는 이유

    • 보안에 도움이 된다.
      • 뷰를 사용하여 사용자마다 테이블에 접근하는 권한에 차별을 둬서 관리하면 보안성이 높아진다.
    • 복잡한 SQL을 단순하게 만들 수 있다.
      • 복잡한 SQL을 뷰로 생성해두고 사용자가 해당 뷰에 접근하도록 하면 편리하다.

     

    뷰의 실제 작동

    뷰의 실제 생성, 수정, 삭제

    뷰를 생성할 때 뷰의 열 이름을 테이블과 다르게 지정할 수 있으며, 띄어쓰기나 한글도 가능합니다.

    뷰의 생성은 CREATE VIEW, 수정은 ALTER VIEW, 삭제는 DROP VIEW 를 사용합니다.

    단순 뷰 : 하나의 테이블로 만든 뷰
    복합 뷰 : 두 개 이상의 테이블로 만들 뷰, 주로 두 테이블을 조인한 결과를 뷰로 만들 때 사용, 읽기 전용

    728x90
Designed by Tistory.