자격증/SQLD

🎯 SQLD 자격증 완벽 정리 — WHERE 절 완전 정복!

2주녘 2025. 5. 6. 13:36
반응형
데이터를 가져올 때, 조건 없이 SELECT를 쓰는 건 양동이로 바닷물 뜨는 거랑 같아요 🌊
그래서 필요한 게 바로 WHERE 절! 🎯

✅ WHERE 절이란?

WHERE 절은 SQL에서 특정 조건에 맞는 행(Row)만 필터링할 때 사용합니다.
SELECT, UPDATE, DELETE, 등 데이터를 건드리는 모든 SQL문에서 함께 사용됩니다.

SELECT * FROM employees
WHERE department_id = 10;
✅ 위 쿼리는 employees 테이블에서 부서 ID가 10인 직원만 조회합니다.

🧩 WHERE 절의 문법 구조

SELECT 컬럼명
FROM 테이블명
WHERE 조건식;

📌 조건식에는 비교연산자, 논리연산자, 함수 등 다양하게 들어갈 수 있어요!


🔍 WHERE 절에서 자주 쓰이는 연산자

📌 1. 비교 연산자

연산자 의미 예시
= 같다 WHERE job_id = 'SA_REP'
!=, <> 같지 않다 WHERE dept_id <> 50
> 초과 WHERE salary > 5000
< 미만 WHERE salary < 3000
>= 이상 WHERE salary >= 10000
<= 이하 WHERE salary <= 5000

 

📌 2. 논리 연산자

연산자 설명 예시
AND 모두 참일 때 WHERE dept_id = 50 AND salary > 3000
OR 하나라도 참이면 WHERE job_id = 'SA_REP' OR job_id = 'IT_PROG'
NOT 조건의 부정 WHERE NOT department_id = 10

 

📌 3. BETWEEN A AND B

  • A 이상 B 이하의 범위를 지정할 때 사용
WHERE salary BETWEEN 3000 AND 5000

 

📌 4. IN (집합)

  • 여러 값 중 일치하는 것이 있으면 참
WHERE department_id IN (10, 20, 30)

 

📌 5. LIKE (패턴 매칭)

  • 문자열 비교 시 와일드카드 문자 사용
와일드카드 의미
% 0개 이상의 문자
_ 정확히 1개 문자
WHERE first_name LIKE 'A%'    -- A로 시작
WHERE email LIKE '%@gmail%'   -- gmail이 포함된 것
WHERE emp_name LIKE '_Kim'    -- 앞에 한 글자 + Kim

 

📌 6. IS NULL / IS NOT NULL

  • NULL 값인지 확인할 때 사용
WHERE manager_id IS NULL
WHERE commission_pct IS NOT NULL

 

🔥 실전 예제

SELECT first_name, salary, department_id
FROM employees
WHERE salary >= 5000 
  AND department_id IN (10, 20)
  AND hire_date BETWEEN TO_DATE('2020-01-01', 'YYYY-MM-DD') AND SYSDATE
ORDER BY salary DESC;

 

📌 해석

  • 급여가 5000 이상이고
  • 부서가 10번이나 20번이며
  • 입사일이 2020년 이후인 직원들을
  • 급여 내림차순으로 조회합니다.

 

⚠️ 시험에서 자주 나오는 WHERE 팁!

유형
WHERE vs HAVING WHERE은 행 필터링, HAVING은 그룹 필터링
NULL 비교 = 대신 반드시 IS NULL 사용
범위 BETWEEN은 포함형 (A ≤ x ≤ B)
LIKE 검색 %, _의 위치에 주의
중첩 조건 괄호로 조건 그룹화 ((A AND B) OR C)

 

✅ 마무리 정리

  • WHERE 절은 데이터 필터링의 중심입니다.
  • 비교 연산자, 논리 연산자, NULL 체크, 패턴 검색을 자유자재로 활용할 수 있어야 해요!
  • SELECT, UPDATE, DELETE에서 다 쓰이므로 기출에서도 출현율 최상위 🎯
반응형