유일성 (Uniqueness): 기본키는 테이블 내의 모든 행에 대해 고유한 값을 가져야 합니다. 즉, 동일한 기본키 값을 가지는 두 개의 행이 존재할 수 없습니다.
NULL 불가 (Not NULL): 기본키 컬럼에는 NULL 값을 허용하지 않습니다. 이는 기본키가 각 행을 유일하게 식별해야 하므로 NULL 값을 사용할 수 없기 때문입니다.
자동 인덱스 생성: 기본키를 정의하면 데이터베이스 시스템이 자동으로 인덱스를 생성하여 검색 속도를 향상시킵니다.
테이블당 하나만 정의: 하나의 테이블에는 하나의 기본키만 정의할 수 있습니다. 기본키는 여러 컬럼으로 구성될 수 있으며, 이를 복합키(Composite Key)라고 합니다.
1-1. Primary Key 선언 방법
다양한 방식으로 기본키를 선언할 수 있습니다. 아래 예시들을 통해 이를 설명합니다.
방법 1: 컬럼 정의와 함께 기본키 선언
sql 코드 :
-- 기본키를 컬럼 정의와 함께 선언
CREATE TABLE pkTable (
col1 VARCHAR2(10) PRIMARY KEY, -- col1이 기본키로 설정
col2 VARCHAR2(10), -- 기본키는 아님
col3 VARCHAR2(10) -- 기본키는 아님
);
col1 컬럼이 기본키로 설정됩니다. 이 컬럼의 값은 유일하고 NULL이 아니어야 합니다.
방법 2: 제약조건으로 기본키 선언
sql코드 :
-- 기본키를 제약조건으로 선언
CREATE TABLE primary_key (
student_id NUMBER(10) PRIMARY KEY, -- student_id가 기본키로 설정
name VARCHAR2(20)
);
student_id 컬럼이 기본키로 설정됩니다. 이 컬럼의 값은 유일하고 NULL이 아니어야 합니다.
방법 3 :
sql코드 :
CREATE TABLE primary_key2 (
student_id NUMBER(10), -- 기본키는 아님
name VARCHAR2(20),
CONSTRAINT student_pk PRIMARY KEY (student_id) -- student_id가 기본키로 설정
);
student_id 컬럼에 대해 student_pk라는 이름의 기본키 제약조건을 설정합니다. 이 컬럼의 값은 유일하고 NULL이 아니어야 합니다.
예시 데이터 조회