본문 바로가기
개발/Database

조건 검색, 효율적인 방법 (BETWEEN, IN)

by BellOne4222 2024. 2. 2.

조건 검색, 효율적인 방법 (BETWEEN, IN)

 

1. AND를 이용한 조건절

SELECT * FROM student
WHERE _id > '2009' AND _id < '2011';

 

  • BETWEEN A AND B
    • A부터 B까지 조건에 맞는 데이터 조회
    • 숫자와 문자도 가능하

2. BETWEEN을 이용한 조건

SELECT * FROM student
WHERE _id BETWEEN '2009' AND '2011';

 

  • 1번과 2번의 결과는 같지만 두 쿼리의 성능은 다르다.
    • 1번은  '2009'보다 큰 값을 모두 구하고, '2011' 보다 작은 값을 모두 구하여 교집합을 다시 구하는 연산
    • 2번은 '2009' 부터 시작하여 '2011'보다 작을 때 까지 순차적으로 구하기 때문에 1번에 비해 성능적으로 좋다.

 

3. OR을 이용한 조건절

SELECT * FROM student
WHERE belong = 'MSE' OR belong = 'ESE' OR belong = 'CSE';

  • IN Operater, IN 연산자
    • WHERE 절 내에서 특정값 여러개를 선택하는 SQL 연산자
    • 괄호 내의 값 중 일치하는 것이 있으면 TRUE 및 반

4. IN을 이용한 조건

SELECT * FROM student
WHERE belong IN ('MSE', 'ESE', 'CSE');

 

  • 3번과 4번의 결과는 같지만 성능적으로는 4번이 더 좋다.
    • 3번의 쿼리는 MSE와 같은 데이터를 찾고, ESE와 같은 데이터를 찾고, CSE와 같은 데이터를 찾고 이들의 교집합을 반환하는 반복되는 과정을 거친다.
    • 4번의 쿼리는 괄호안의 데이터와 일치하는 것만 탐색하기 때문에 반복없이 데이터를 반환하여 3번에 비해 성능적으로 좋다.