본문 바로가기
Database

오라클 WHERE 절로 데이터 필터링하기

by 굿센스굿 2024. 12. 3.
반응형


데이터베이스 관리에서 WHERE 절은 가장 많이 사용되는 SQL 구문 중 하나입니다. WHERE 절은 특정 조건을 기반으로 데이터를 필터링하여 원하는 결과만 조회할 수 있게 해주는 강력한 도구입니다. 이 글에서는 WHERE 절의 기본적인 사용법부터 고급 기능까지를 예제로 살펴보겠습니다.


1. WHERE 절의 기본 구조

SQL에서 WHERE 절은 SELECT, UPDATE, DELETE와 같은 명령문에 사용되어 조건에 맞는 데이터만 선택합니다. 기본 구조는 다음과 같습니다:

SELECT 열_이름
FROM 테이블_이름
WHERE 조건;

예제 1: 특정 조건으로 데이터 조회하기

다음은 직원 데이터에서 나이가 30 이상인 직원들을 조회하는 예제입니다.

SELECT 이름, 나이, 부서
FROM 직원
WHERE 나이 >= 30;
  • 해석: 직원 테이블에서 나이가 30 이상인 직원들의 이름, 나이, 부서를 조회합니다.
  • 결과: 조건에 부합하는 행만 출력됩니다.

2. WHERE 절에서의 다양한 조건 사용

WHERE 절에서는 단순 비교 외에도 다양한 연산자와 조건을 사용할 수 있습니다. 주요 사용 사례는 다음과 같습니다:

(1) 비교 연산자

  • =: 같음
  • != 또는 <>: 같지 않음
  • <, >, <=, >=: 크기 비교

예제 2: 특정 부서의 데이터 조회

SELECT 이름, 부서
FROM 직원
WHERE 부서 = 'IT';
  • 해석: 부서가 'IT'인 직원들의 이름과 부서를 조회합니다.

(2) 논리 연산자

  • AND: 여러 조건을 모두 만족해야 함
  • OR: 하나 이상의 조건을 만족하면 됨
  • NOT: 조건을 부정

예제 3: 복합 조건으로 필터링

SELECT 이름, 나이, 부서
FROM 직원
WHERE 나이 > 25 AND 부서 = '영업';
  • 해석: 나이가 25세 초과이면서 부서가 '영업'인 직원들을 조회합니다.
  • 응용: 조건을 추가해 다양한 결과를 얻을 수 있습니다.

3. WHERE 절의 고급 활용

(1) BETWEEN 연산자

BETWEEN은 특정 범위 내의 값을 필터링할 때 사용됩니다.

예제 4: 특정 연령대 직원 조회

SELECT 이름, 나이
FROM 직원
WHERE 나이 BETWEEN 20 AND 30;
  • 해석: 나이가 20세 이상 30세 이하인 직원들의 이름과 나이를 조회합니다.

(2) IN 연산자

IN은 여러 값 중 하나라도 일치하는 데이터를 조회합니다.

예제 5: 여러 부서의 직원 조회

SELECT 이름, 부서
FROM 직원
WHERE 부서 IN ('IT', '마케팅', '영업');
  • 해석: 부서가 'IT', '마케팅', '영업' 중 하나인 직원들을 조회합니다.
  • 효율성: 긴 OR 조건문보다 간결하게 표현 가능합니다.

(3) LIKE 연산자

LIKE는 패턴 매칭을 통해 데이터를 필터링합니다. 주로 와일드카드(%, _)와 함께 사용됩니다.

  • %: 0개 이상의 임의 문자
  • _: 정확히 1개의 임의 문자

예제 6: 특정 문자로 시작하는 이름 조회

SELECT 이름
FROM 직원
WHERE 이름 LIKE '김%';
  • 해석: 이름이 '김'으로 시작하는 직원들을 조회합니다.
  • 활용: 검색 기능 구현 시 매우 유용합니다.

4. 실무 활용 팁

  1. 조건 최적화: WHERE 절의 조건은 가능한 간단하게 작성해야 성능 저하를 방지할 수 있습니다.
    • 복잡한 계산이나 함수 호출은 피하고, 인덱스를 활용할 수 있는 조건을 작성하세요.
  2. NULL 값 처리: NULL은 비교 연산자로 직접 비교할 수 없습니다. 대신 IS NULL 또는 IS NOT NULL을 사용하세요.
    • 예: WHERE 부서 IS NULL
  3. 조합 활용: WHERE 절은 JOIN과 결합하여 다양한 테이블의 데이터를 필터링할 수 있습니다.
    SELECT 직원.이름, 부서.부서명
    FROM 직원
    JOIN 부서 ON 직원.부서코드 = 부서.부서코드
    WHERE 부서.부서명 = 'IT';
    

5. 결론

WHERE 절은 SQL에서 데이터를 조회하거나 조작할 때 핵심적인 역할을 합니다. 기본적인 사용법부터 고급 조건까지 이해하고 활용하면 복잡한 데이터 필터링 작업도 효과적으로 수행할 수 있습니다. 위에서 소개한 예제를 직접 실행해보며 WHERE 절의 강력함을 체감해 보세요.

질문이나 추가적인 내용 요청이 있다면 댓글로 알려주세요! 😊

반응형