Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server 기본 키(PRIMARY KEY) 완벽 정리 – 생성, 삭제, 비활성화 및 활성화 방법

이 글에서는 SQL Server에서 기본 키(PRIMARY KEY)를 생성하고, 삭제하며, 비활성화하거나 다시 활성화하는 방법을 구문과 실제 예제와 함께 자세히 살펴봅니다.

SQL Server에서 기본 키란 무엇인가?

SQL Server(Transact-SQL)에서 기본 키는 하나의 필드 또는 여러 필드의 조합으로, 테이블 내 각 레코드를 고유하게 식별하는 역할을 합니다. 기본 키에 포함된 필드에는 NULL 값이 허용되지 않으며, 하나의 테이블에는 오직 하나의 기본 키만 존재할 수 있습니다. 기본 키는 CREATE TABLE 문 또는 ALTER TABLE 문을 사용하여 정의할 수 있습니다.

기본 키 생성 – CREATE TABLE 문 사용

기본 구문

CREATE TABLE ten_bang
(
  cot1 kieu_du_lieu [ NULL | NOT NULL ] [ PRIMARY KEY ],
  cot2 kieu_du_lieu [ NULL | NOT NULL ],
  ...
);

또는 CONSTRAINT 절을 사용하여 다음과 같이 작성할 수도 있습니다.

CREATE TABLE ten_bang
(
  cot1 kieu_du_lieu [ NULL | NOT NULL ],
  cot2 kieu_du_lieu [ NULL | NOT NULL ],
  ...
  CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, ... cot_n)
);

예제 1: 단일 컬럼 기본 키

CREATE TABLE nhanvien
(
  nhanvien_id INT PRIMARY KEY,
  ho VARCHAR(50) NOT NULL,
  ten VARCHAR(50) NOT NULL,
  luong MONEY
);

위 예제에서 nhanvien(직원) 테이블의 기본 키는 nhanvien_id라는 단일 필드로 구성됩니다. 같은 결과를 CONSTRAINT 절을 이용해 다음과 같이 만들 수도 있습니다.

CREATE TABLE nhanvien
(
  nhanvien_id INT,
  ho VARCHAR(50) NOT NULL,
  ten VARCHAR(50) NOT NULL,
  luong MONEY,
  CONSTRAINT nhanvien_pk PRIMARY KEY (nhanvien_id)
);

예제 2: 복합 기본 키 (여러 컬럼)

이번에는 두 개 이상의 필드로 구성된 기본 키를 생성하는 예제입니다.

CREATE TABLE nhanvien
(
  ho VARCHAR(50) NOT NULL,
  ten VARCHAR(50) NOT NULL,
  luong MONEY,
  CONSTRAINT nhanvien_pk PRIMARY KEY (ho, ten)
);

이 예제에서는 ho(성)과 ten(이름) 두 컬럼으로 기본 키를 구성했습니다. 이 두 필드의 조합이 테이블 내 레코드를 고유하게 식별합니다.

기본 키 생성 – ALTER TABLE 문 사용

ALTER TABLE 문으로 기본 키를 생성하려면 해당 컬럼이 반드시 NOT NULL로 정의되어 있어야 합니다. 컬럼이 NULL 값을 허용하도록 되어 있다면, 테이블을 삭제한 후 다시 생성하거나 컬럼 정의를 변경하기 전까지는 기본 키를 추가할 수 없습니다.

기본 구문

ALTER TABLE ten_bang
  ADD CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, ... cot_n);

예제 1: 단일 컬럼 기본 키 추가

ALTER TABLE nhanvien
  ADD CONSTRAINT nhanvien_pk PRIMARY KEY (nhanvien_id);

이 예제에서는 nhanvien 테이블에 nhanvien_id 필드를 기준으로 하는 기본 키를 생성합니다. 주의할 점은 nhanvien_id 필드가 미리 NOT NULL로 정의되어 있어야 한다는 것입니다. 그렇지 않다면 테이블을 삭제 후 재생성하면서 해당 필드를 NOT NULL로 정의해야 합니다.

예제 2: 복합 기본 키 추가

여러 필드로 구성된 기본 키도 다음과 같이 생성할 수 있습니다.

ALTER TABLE nhanvien
  ADD CONSTRAINT nhanvien_pk PRIMARY KEY (ho, ten);

이 기본 키는 ho(성)과 ten(이름) 두 필드로 구성되며, 두 필드 모두 사전에 NOT NULL로 정의되어 있어야 합니다.

SQL Server에서 기본 키 삭제하기

기본 구문

ALTER TABLE ten_bang
  DROP CONSTRAINT ten_rang_buoc;

예제

ALTER TABLE nhanvien
  DROP CONSTRAINT nhanvien_pk;

위 예제는 nhanvien 테이블에서 nhanvien_pk라는 이름의 기본 키 제약 조건을 삭제합니다.

SQL Server에서 기본 키 비활성화하기

기본 키는 인덱스 형태로 관리되므로, ALTER INDEX 문을 사용하여 일시적으로 비활성화할 수 있습니다.

기본 구문

ALTER INDEX ten_rang_buoc ON ten_bang
DISABLE;

예제

ALTER INDEX nhanvien_pk ON nhanvien
DISABLE;

위 예제는 nhanvien 테이블의 기본 키 인덱스를 비활성화합니다. 비활성화된 동안에는 해당 제약 조건에 의한 데이터 무결성 검사가 수행되지 않습니다.

SQL Server에서 기본 키 다시 활성화하기

비활성화된 기본 키를 다시 활성화하려면 REBUILD 옵션을 사용하여 인덱스를 재구축해야 합니다.

기본 구문

ALTER INDEX ten_rang_buoc ON ten_bang
REBUILD;

예제

ALTER INDEX nhanvien_pk ON nhanvien
REBUILD;

위 예제는 nhanvien 테이블의 기본 키 인덱스를 재구축하여 다시 활성화합니다.

정리

지금까지 SQL Server에서 기본 키의 개념과 함께 CREATE TABLE 및 ALTER TABLE 문을 활용한 생성 방법, DROP CONSTRAINT를 통한 삭제, 그리고 ALTER INDEX의 DISABLE과 REBUILD 옵션을 이용한 비활성화 및 재활성화 방법까지 살펴보았습니다. 기본 키는 데이터베이스 무결성의 핵심 요소이므로, 컬럼의 NULL 허용 여부와 제약 조건 이름 관리에 항상 유의하는 것이 좋습니다.