PRIMARY KEY Constraint
PRIMARY KEY 제약 조건은 테이블의 각 레코드를 고유하게 식별한다.
PRIMARY KEY는 UNIQUE 값을 포함해야 하며 NULL 값을 포함할 수 없다.
테이블에는 하나의 PRIMARY KEY만 있을 수 있다.
테이블에서 이 PRIMARY KEY는 단일 또는 다중 열(필드)로 구성될 수 있다.
CREATE TABLE에서 PRIMARY KEY
“Persons” 테이블이 생성될 때 “ID” 열에 기본 키를 생성
MySQL
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) );
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 제약 조건을 정의
MySQL / SQL Server / Oracle / MS Access:
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)가 하나만 있다. 그러나 PRIMARY KEY의 값은 두 개의 열(ID + 성)로 구성된다.
ALTER TABLE에서 PRIMARY KEY
테이블이 이미 생성되었을 때 “ID” 열에 PRIMARY KEY 제약 조건을 생성
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons ADD PRIMARY KEY (ID);
PRIMARY KEY 제약 조건의 이름을 지정하고 여러 열에 PRIMARY KEY 제약 조건을 정의
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
⭐ ALTER TABLE을 사용하여 PRIMARY KEY를 추가할 경우 테이블이 처음 생성되었을 때 PRIMARY KEY 열에 NULL 값이 포함되지 않도록 선언되어 있어야한다.
PRIMARY KEY 제약 조건 삭제
MySQL
ALTER TABLE Persons DROP PRIMARY KEY;
SQL Server / Oracle / MS Access
ALTER TABLE Persons DROP CONSTRAINT PK_Person;
참고
W3C School - SQL PRIMARY KEY Constraint
W3C School - SQL Tutorial