ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL] Primary key 쉽고 완벽하게 이해하기
    SQL 배우기 2023. 11. 27. 10:43

    릴레이션 모델을 논리적 스키마로 표현할 때, contacts(id, name, email, phone, score)  밑줄이 그어진 속성을 보신 적이 있을 겁니다.

    이것은 릴레이션에서 primary key를 표현하는 방법인데요, 릴레이션에서 가장 중요한 키는 primary key가 아닐까 감히 확신해봅니다!

    오늘은 이렇게 중요한 primary 키에 대해서 알아보겠습니다.

    - primary key 의 정의

    - primary key 의 특징

    - 테이블 생성시 primary key 지정하는 두 가지 방식

     

    Q. primary key 의 정의

    A. candidate key 중에서 릴레이션의 특정 행을 고유하게 식별하기 위해 DBMS에서 선택하여 사용하는 키

       (▶︎ candidate key : 릴레이션에서 특정 행을 고유하게 식별할 수 있는 키)

     

    Q. primary key 의 특징

    A. 항상 고유한 값을 가져야하며, 널값은 허용되지 않습니다. 또한 최대한 변동이 없어야 합니다.

     

    Q. 테이블 생성시 primary key 지정하는 두 가지 방법

    A1. 필드를 생성시, Primary key로 바로 지정

    A2. 필드를 생성한 후, 사후적으로 Primary key로 지정 (복합 primary key일 경우, 이 방법 사용)

     

    1. 필드를 생성시, Primary key로 바로 지정

    CREATE TABLE contacts ( 
        id INTEGER PRIMARY KEY,
        name  TEXT NOT NULL,  # NULL을 허용하지 않음
        email TEXT NOT NULL UNIQUE, # NULL을 허용하지 않고 중복을 허용하지 않음
        phone TEXT NOT NULL UNIQUE CHECK (length(phone) >= 10) # NULL을 허용하지 않고 중복을 허용하지 않고 길이가 10 이상이어야 함
        score INTEGER DEFAULT 0, #값이 입력되지 않을 시 디폴트로 0을 저장
    );

     

    2. 필드를 생성한 후, 사후적으로 Primary key로 지정

    (▶︎ 복합 primary key를 사용할 경우는 이 방법만을 사용합니다.)

    CREATE TABLE contacts (
        id INTEGER,
        name  TEXT NOT NULL,  # NULL을 허용하지 않음
        email TEXT NOT NULL UNIQUE, # NULL을 허용하지 않고 중복을 허용하지 않음
        phone TEXT NOT NULL UNIQUE CHECK (length(phone) >= 10) # NULL을 허용하지 않고 중복을 허용하지 않고 길이가 10 이상이어야 함
        score INTEGER DEFAULT 0, #값이 입력되지 않을 시 디폴트로 0을 저장
        PRIMARY KEY (contact_id)
    );
Designed by Tistory.