BOOK

[Do it SQL] Chapter 05-1/ 05-2

Minch13r 2025. 3. 24. 21:42

1. WHERE절이란 무엇인가요?

WHERE절은 SQL 쿼리에서 특정 조건에 맞는 데이터만 선택하고 싶을 때 사용하는 구문입니다. 마치 도서관에서 원하는 책만 골라내는 것과 같습니다.

WHERE절의 기본 구조

SELECT 열_이름(들)
FROM 테이블_이름
WHERE 조건식;

 

이 구문은 '테이블_이름'에서 '조건식'을 만족하는 행들만 선택하여 '열_이름(들)'에 해당하는 데이터를 가져옵니다.

간단한 WHERE절 예시

예를 들어, 학생 테이블에서 나이가 20세 이상인 학생들만 조회하고 싶다면:

SELECT 학생_이름, 나이, 학과
FROM 학생
WHERE 나이 >= 20;

2. 비교 연산자

WHERE절에서는 다양한 비교 연산자를 사용할 수 있습니다:

연산자 의미 예시
= 같음 WHERE 이름 = '김철수'
<> 또는 != 같지 않음 WHERE 학과 <> '컴퓨터공학과'
< 작음 WHERE 나이 < 20
<= 작거나 같음 WHERE 가격 <= 5000
> WHERE 점수 > 80
>= 크거나 같음 WHERE 급여 >= 3000000
BETWEEN 두 값 사이 WHERE 나이 BETWEEN 20 AND 30
IN 목록 중 하나와 일치 WHERE 학과 IN ('컴퓨터공학과', '전자공학')
LIKE 패턴 일치 WHERE 이름 LIKE '김%'
IS NULL NULL 값 WHERE 전화번호 IS NULL

3. AND 연산자

AND 연산자는 여러 조건을 모두 만족해야 할 때 사용합니다. 마치 "이것도 맞고, 저것도 맞아야 해"라고 말하는 것과 같습니다.

AND 연산자의 기본 구조

SELECT 열_이름(들)
FROM 테이블_이름
WHERE 조건1 AND 조건2 [AND 조건3 ...];

AND 연산자 예시

학생 테이블에서 컴퓨터공학과이면서 3학년인 학생들만 조회:

SELECT 학생_이름, 학과, 학년
FROM 학생
WHERE 학과 = '컴퓨터공학' AND 학년 = 3;

 

제품 테이블에서 가격이 10,000원 이상이고 재고가 5개 이상인 제품 조회:

SELECT 제품명, 가격, 재고
FROM 제품
WHERE 가격 >= 10000 AND 재고 >= 5;

4. OR 연산자

OR 연산자는 여러 조건 중 하나라도 만족하면 선택합니다. "이것 또는 저것 중 하나만 맞으면 돼"라고 말하는 것과 같습니다.

OR 연산자의 기본 구조

SELECT 열_이름(들)
FROM 테이블_이름
WHERE 조건1 OR 조건2 [OR 조건3 ...];

OR 연산자 예시

학생 테이블에서 컴퓨터공학과 또는 전자공학과 학생들 조회:

SELECT 학생_이름, 학과
FROM 학생
WHERE 학과 = '컴퓨터공학' OR 학과 = '전자공학';

 

제품 테이블에서 가격이 5,000원 이하이거나 재고가 없는 제품 조회:

SELECT 제품명, 가격, 재고
FROM 제품
WHERE 가격 <= 5000 OR 재고 = 0;

5. AND와 OR의 조합

AND와 OR을 함께 사용할 때는 괄호를 사용하여 연산 순서를 명확히 해야 합니다. 괄호가 없으면 AND가 OR보다 우선순위가 높습니다.

괄호 사용 예시

컴퓨터공학과 또는 전자공학과 학생 중에서 3학년 이상인 학생만 조회:

SELECT 학생_이름, 학과, 학년
FROM 학생
WHERE (학과 = '컴퓨터공학' OR 학과 = '전자공학') AND 학년 >= 3;

 

괄호가 없다면 다음과 같이 해석됩니다:

SELECT 학생_이름, 학과, 학년
FROM 학생
WHERE 학과 = '컴퓨터공학' OR (학과 = '전자공학' AND 학년 >= 3);

이는 "컴퓨터공학과 학생 모두와 전자공학과 3학년 이상 학생"을 조회하게 됩니다.


6. 실무에서 자주 사용하는 WHERE절 패턴

1) 날짜 범위 검색

SELECT *
FROM 주문
WHERE 주문일자 BETWEEN '2023-01-01' AND '2023-12-31';

2) 여러 값 중 하나와 일치하는지 검색 (IN 활용)

SELECT *
FROM 직원
WHERE 부서 IN ('영업부', '마케팅부', '개발부');

3) 패턴 검색 (LIKE 활용)

SELECT *
FROM 고객
WHERE 이메일 LIKE '%gmail.com';

4) NULL 값 처리

SELECT *
FROM 회원
WHERE 전화번호 IS NULL;

5) 복합 조건 검색

SELECT *
FROM 상품
WHERE (카테고리 = '전자제품' AND 가격 > 100000)
   OR (카테고리 = '의류' AND 할인율 >= 30);

'BOOK' 카테고리의 다른 글

[Do it SQL] Chapter 06-1/ 06-2  (1) 2025.03.29
[Do it SQL] Chapter 05-3  (0) 2025.03.25
[Do it SQL] Chapter 04-5 / 04-6  (1) 2025.03.21
[Do it SQL] Chapter 04-3 / 04-4  (0) 2025.03.20
[Do it SQL] Chapter 04-2  (0) 2025.03.19