Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

SQL BETWEEN 연산자 완벽 가이드: 숫자·날짜·문자열 범위 검색 방법

SQL에서 BETWEEN 키워드는 특정 값의 범위에 속하는 데이터를 조회할 때 사용하는 조건 연산자입니다. 주로 두 날짜 사이 또는 두 숫자 사이의 값을 검색하는 데 활용되며, WHERE 절과 함께 사용됩니다. 기본 문법은 BETWEEN 최솟값 AND 최댓값 형태입니다.

데이터베이스 작업을 하다 보면 두 값 사이에 존재하는 데이터를 추출해야 하는 경우가 자주 발생합니다. 이럴 때 BETWEEN 연산자를 활용하면 간단하게 해결할 수 있습니다.

예를 들어 직원 급여 데이터베이스가 있다고 가정해 보겠습니다. BETWEEN을 사용하면 연봉이 5만 달러에서 6만 달러 사이인 직원 목록을 손쉽게 조회할 수 있습니다.

이 글에서는 SQL에서 BETWEEN을 사용하는 방법과 실무에서 활용할 수 있는 다양한 예제를 살펴보겠습니다.

SQL BETWEEN 키워드란?

SQL의 BETWEEN 키워드는 지정한 범위 내에 있는 값을 선택할 수 있게 해줍니다. BETWEEN은 SQL문의 WHERE 절에 작성하며, 범위의 시작값과 끝값을 지정하기 위해 반드시 AND 키워드와 함께 사용해야 합니다.

SQL BETWEEN 조건의 기본 문법은 다음과 같습니다:

SELECT column_name FROM table_name
WHERE column_name
BETWEEN minimum_value AND maximum_value;

위 문법에서 확인할 수 있듯이, BETWEEN 키워드는 WHERE 절 뒤에 위치하며, 최솟값과 최댓값은 AND 키워드로 구분합니다.

BETWEEN 키워드는 숫자나 날짜뿐만 아니라 문자열에도 적용할 수 있습니다. 예를 들어 특정 날짜 사이에 입사한 직원을 찾거나, 성적이 A부터 C 사이인 학생을 조회하는 것도 가능합니다.

또한 BETWEEN은 SELECT 문뿐만 아니라 INSERT, UPDATE, DELETE 문에서도 활용할 수 있어 데이터 조회와 수정 작업 모두에 유용하게 사용됩니다.

SQL BETWEEN 예제

1. 숫자 범위 검색

다음과 같은 직원 테이블이 있다고 가정해 보겠습니다:

namesalary
Geoff38000
Mike32000
Emma50000
Jonah50000
Luke32000
Alexis33000
Hannah30000

이 테이블은 두 개의 컬럼과 일곱 개의 행으로 구성되어 있으며, SQL CREATE TABLE과 INSERT 명령어로 생성했습니다.

연봉이 35,000달러 이상 55,000달러 이하인 직원의 이름과 급여를 조회하고 싶다면 다음과 같은 쿼리를 사용할 수 있습니다:

SELECT name, salary FROM employees
WHERE salary 
BETWEEN 35000 AND 55000;

쿼리 실행 결과는 다음과 같습니다:

namesalary
Geoff38000
Emma50000
Jonah50000

참고: BETWEEN은 경계값(최솟값과 최댓값)을 포함하는 조건입니다. 따라서 급여가 정확히 35,000 또는 55,000인 직원도 결과에 포함됩니다.

2. 날짜 범위 검색

BETWEEN 연산자는 날짜 범위 검색에도 활용할 수 있습니다.

2009년 1월 1일부터 2011년 12월 31일 사이에 입사한 직원의 이름과 입사일을 조회하고 싶다면, CAST 함수를 사용해 문자열을 DATE 타입으로 변환한 후 BETWEEN 조건을 적용하면 됩니다:

SELECT name, hired_date FROM employees
WHERE hired_date
BETWEEN CAST('2009-01-01' AS DATE) AND CAST('2011-12-31' AS DATE);

쿼리 실행 결과는 다음과 같습니다:

namehire date
Luke2009-12-03
Emma2010-03-19
Mike2010-03-19
Hannah2011-09-30
Jonah2010-07-23

3. 문자열 범위 검색

BETWEEN은 문자열 비교에도 사용할 수 있습니다. 이름이 알파벳 A부터 F 사이의 문자로 시작하는 직원을 찾고 싶다면 다음과 같이 작성합니다:

SELECT name FROM employees
WHERE name
BETWEEN 'A' AND 'F';

쿼리 실행 결과는 다음과 같습니다:

name
Emma
Alexis

문자열 비교는 사전순(알파벳 순)으로 이루어지기 때문에, 'A'로 시작하는 Emma와 Alexis가 결과에 포함된 것을 확인할 수 있습니다.

BETWEEN과 NOT BETWEEN

반대로 특정 범위에 속하지 않는 데이터를 조회하고 싶다면 NOT BETWEEN을 사용하면 됩니다. 예를 들어 급여가 35,000 미만 또는 55,000 초과인 직원을 찾으려면 다음과 같이 작성합니다:

SELECT name, salary FROM employees
WHERE salary NOT BETWEEN 35000 AND 55000;

마무리

SQL의 BETWEEN 연산자는 특정 범위 내에 있는 컬럼값을 가진 레코드를 조회할 때 사용합니다. 숫자, 날짜, 문자열 등 다양한 데이터 타입의 범위 검색에 활용할 수 있으며, WHERE 절과 함께 사용한다는 점만 기억하면 됩니다.

연습 문제: 'employees' 테이블에서 ID가 300 이상 400 이하인 모든 직원의 ID를 조회하는 쿼리를 직접 작성해 보세요. 직원 ID는 'id' 컬럼에 저장되어 있습니다.

SQL에 대해 더 깊이 배우고 싶다면 체계적인 학습 로드맵을 따라가는 것이 좋습니다. 온라인 강의, 공식 문서, 실습 프로젝트 등 다양한 학습 자료를 활용하면 SQL 데이터베이스 언어 실력을 효과적으로 향상시킬 수 있습니다.