본문 바로가기
Data Engineering

[SQLD 자격검정 실전문제] Part 2-1. 61번 SQL 설명으로 맞는 것 고르기

by 햣둘 2025. 5. 29.

 

정답 : 4번

CREATE TABLE 서비스 (

   서비스번호 VARCHAR2(10) PRIMARY KEY,

   서비스명 VARCHAR2(100) NULL,

   개시일자 DATE NOT NULL

)

 

[SQL]

a) SELECT * FROM 서비스 WHERE 서비스번호=1;

b) INSERT INTO 서비스 VALUES ('999', '', '2015-11-11');

c) SELECT * FROM 서비스 WHERE 서비스명='';

d) SELECT * FROM 서비스 WHERE 서비스명 IS NULL;

 

1) 서비스번호 칼럼의 레코드 중 '001'과 같은 숫자 형식으로 된 레코드가 하나라도 입력되어 있다면 a는 오류 없이 실행된다. (X) 

-> 서비스 번호는 문자형이므로 '001'과 같은 형식으로 입력되어 있다. 따라서 조회 조건의 값도 '001'과 같은 형식을 사용해야 문제없이 조회된다.

2) 오라클에서 b와 같이 데이터를 입력했을 때, 서비스명 칼럼에 공백문자 데이터가 입력된다. (X)

-> Oracle에서 빈 문자열('')은 NULL로 저장된다.

3) 오라클에서 b와 같이 데이터를 입력하고 c와 같이 조회했을 때, 데이터는 조회된다. (X)

-> Oracle에서 빈 문자열('')은 NULL로 저장되므로, d와 같이 IS NULL 형식으로 조회해야 데이터가 조회된다.

4) SQL Server에서 b와 같이 데이터를 입력하고 d와 같이 조회했을 때, 데이터는 조회되지 않는다.(O)

-> SQL Server에서는 빈 문자열은 빈 문자열로 저장이 된다. SQL Server는 빈 문자열('')과 NULL을 구분한다. 따라서 c와 같이 조회해야 데이터가 조회된다.