자격증/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에서 다 쓰이므로 기출에서도 출현율 최상위 🎯
반응형