SQL - 문제 미리보기

문제 1563

hard
다음 두 SQL 문의 차이점을 올바르게 설명한 것은?
```sql
-- 문장 A
SELECT * FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

-- 문장 B
SELECT * FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';
```
A. 두 문장은 완전히 동일한 결과를 출력한다
B. 문장 A는 스페인의 G 또는 R로 시작하는 고객, 문장 B는 스페인의 G로 시작하는 고객과 모든 R로 시작하는 고객을 출력한다
C. 문장 B가 더 정확한 문법이다
D. 문장 A는 문법 오류가 있다

정답: B

괄호의 중요성:
• 괄호는 연산자 우선순위를 결정합니다
• AND와 OR을 함께 사용할 때 필수적입니다

문장 A 분석 (괄호 있음):
```sql
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');
```
조건 해석:
• 스페인 고객이면서 (이름이 G로 시작하거나 R로 시작)
• 결과: 스페인의 G 또는 R로 시작하는 고객만

문장 B 분석 (괄호 없음):
```sql
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';
```
연산자 우선순위: AND가 OR보다 먼저 처리됨
실제 해석:
```sql
WHERE (Country = 'Spain' AND CustomerName LIKE 'G%') OR CustomerName LIKE 'R%';
```
결과:
• 스페인의 G로 시작하는 고객 또는
• 모든 국가의 R로 시작하는 고객

💡 학습 팁

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