-
[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) );
'SQL 배우기' 카테고리의 다른 글
주피터노트북에서 MySQL 설치 및 연동하기 (0) 2024.01.10 [SQL] NULL 값이 있을 때 연산하기 (SIGN, COALESCE) (0) 2024.01.09 [SQL] Self join 셀프조인 완벽 이해하기 (1) 2023.11.24 [SQL] SQL 명령 특성에 따른 구분 DDL DML DCL (0) 2023.11.24 [HIVE SQL] 코딩테스트 준비 2 (0) 2023.05.21