Skip to content

10. PRIMARY KEY


1. PRIMARY KEY Constraint

  • PRIMARY KEY 제약 조건은 유일하게 테이블의 각 레코드를 식별한다.
  • 기본 키는 UNIQUE 값을 포함해야 하며 NULL 값을 포함할 수 없다.
  • 테이블에는 하나의 기본 키만 있을 수 있고, 테이블에서 이 기본 키는 단일 또는 다중 열(필드)로 구성된다.


2. PRIMARY KEY on CREATE TABLE

  • 다음은 Persons 테이블이 생성될 때 ID 열에 PRIMARY KEY 제약 조건을 생성한다.


1) MySQL

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);


2) SQL Server / Oracle / MS Access

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);


  • PRIMARY KEY 제약 조건의 이름을 지정하고, 여러 열에 대한 PRIMARY KEY 제약 조건을 정의하려면 다음 SQL 문을 사용한다.


CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);


  • 참고로 위의 예에는 하나의 PRIMARY KEY(PK_Person)만 있다.
  • 하지만 기본 키의 VALUE2개의 COLUMNS(ID + LastName)로 구성된다.


3. PRIMARY KEY Constraint on ALTER TABLE

  • Persons 테이블이 이미 생성된 경우 ID 열에 PRIMARY KEY 제약 조건을 생성하려면 다음 SQL 문을 사용한다.


ALTER TABLE Persons
ADD PRIMARY KEY (ID);


  • PRIMARY KEY 제약 조건의 이름을 지정하고, 여러 열에 대한 PRIMARY KEY 제약 조건을 정의하려면 다음 SQL 문을 사용한다.


ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);


  • 참고로 ALTER TABLE 문을 사용하여 기본 키를 추가하는 경우 기본 키 열은 테이블이 처음 생성되었을 때 NULL 값을 포함하지 않도록 선언되어야 한다.


4. DROP a PRIMARY KEY Constraint

  • PRIMARY KEY 제약 조건을 삭제하려면 다음 SQL 문을 사용한다.


1) MySQL

ALTER TABLE Persons
DROP PRIMARY KEY;


2) SQL Server / Oracle / MS Access

ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

References