엑셀 파일에서 좌측에 1,2,3,4,5처럼 표시가 되는 숫자를 본 적이 있을 것입니다. 테이블 은 각각의 컬럼을 기준으로 다수의 데이터 열(Rows)을 가지고 있습니다.

테이블에 데이터를 저장할 때 각각의 데이터를 지정하기 위한 고유의 아이디 값이 필요로 합니다. 이러한 고유의 식별 값을 Primary Key 로 지정을 합니다. 프라이머리 키의 값은 앞에서 학습한 유일값 (UNIQUE) 속성의 특징도 가지고 있습니다. 따라서 프라이머리 키의 값은 중복되지 않습니다. 또한 NOT NULL 속성도 가지고 있기 때문에 NULL을 허용하 지 않고 반드시 값을 가지고 있습니다.

프라이머리 키는 테이블에 기본 키가 하나만 있을 수 있습니다. 기본 키는 하나 또는 여러 개의 필드로 구성될 수 있습니다.

09.4.1 쿼리 실습

다음 예제는 정수형 Id 값을 프라이머리 키로 설정합니다.

| 예제 쿼리 |

CREATE TABLE members (
    Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    PRIMARY KEY (Id)
);

또는 다음처럼 프라이머리 키 값을 여러 개의 필드로 구성할 수도 있습니다.

| 예제 쿼리 |

CREATE TABLE members (
    Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    CONSTRAINT PK_members PRIMARY KEY (Id,LastName)
);

위의 예제는 2개의 필드를 하나의 프라이머리 키로 설정합니다. 하지만 프라이머리 키는 1개만 설정할 수 있기 때문에 CONSTRAINT 키워드를 통하여 PK_members 키 이름을 생성합니다.

프라이머리 키는 ALTER 명령을 통하여 추가하거나 삭제할 수 있습니다.

| 예제 쿼리 |

ALTER TABLE members ADD PRIMARY KEY (Id); 

다중컬럼 키

CONSTRAINT 키워드를 통하여 2개의 컬럼 필드를 가지는 프라이머리 키를 추가할 수 있습니다.

| 예제 쿼리 |

ALTER TABLE members ADD CONSTRAINT PK_members PRIMARY KEY (Id,LastName); 

2개의 필드를 가지는 프라이머리 키 생성 시 각각의 컬럼은 NULL 값이 허용되지 않은 컬럼이어야 합니다.

note: 다중 컬럼키는 중복상의 키를 생성하지 안도록 방지할 수 있습니다.

다중컬럼 인덱스를 다른말로 결합 인덱스(composite index)라고 합니다.

삭제

| 예제 쿼리 |

ALTER TABLE members DROP PRIMARY KEY; 

프라이머리 키를 삭합니다.