SQL - 문제 미리보기

문제 1760

medium
PRIMARY KEY와 UNIQUE 제약조건의 차이점으로 올바른 것은?
A. PRIMARY KEY는 NULL을 허용하지만 UNIQUE는 허용하지 않는다
B. UNIQUE는 NULL을 허용하지만 PRIMARY KEY는 허용하지 않는다
C. 두 제약조건 모두 NULL을 허용하지 않는다
D. 두 제약조건 모두 NULL을 허용한다

정답: B


PRIMARY KEY와 UNIQUE의 NULL 처리 방식에서 핵심적인 차이가 있습니다.

PRIMARY KEY의 NULL 처리:
```sql
CREATE TABLE Employees (
EmployeeID int PRIMARY KEY, -- 자동으로 NOT NULL 적용
EmployeeName varchar(100)
);

-- 성공
INSERT INTO Employees (EmployeeID, EmployeeName) VALUES (1, 'John');

-- 실패: PRIMARY KEY는 NULL 불가
INSERT INTO Employees (EmployeeID, EmployeeName) VALUES (NULL, 'Jane');
-- Error: Cannot insert NULL into PRIMARY KEY column
```
UNIQUE의 NULL 처리:
```sql
CREATE TABLE Products (
ProductID int PRIMARY KEY,
ProductCode varchar(20) UNIQUE, -- NULL 허용
ProductName varchar(255)
);

-- 성공: ProductCode에 실제 값
INSERT INTO Products (ProductID, ProductCode, ProductName)
VALUES (1, 'PRD001', 'Product 1');

-- 성공: ProductCode가 NULL (허용됨)
INSERT INTO Products (ProductID, ProductName)
VALUES (2, 'Product 2'); -- ProductCode = NULL

-- 성공: 또 다른 NULL (UNIQUE에서 NULL은 중복으로 보지 않음)
INSERT INTO Products (ProductID, ProductName)
VALUES (3, 'Product 3'); -- ProductCode = NULL

-- 실패: 실제 값의 중복
INSERT INTO Products (ProductID, ProductCode, ProductName)
VALUES (4, 'PRD001', 'Product 4');
-- Error: UNIQUE constraint violation
```

💡 학습 팁

이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.