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. 숫자 범위 검색
다음과 같은 직원 테이블이 있다고 가정해 보겠습니다:
| name | salary |
| Geoff | 38000 |
| Mike | 32000 |
| Emma | 50000 |
| Jonah | 50000 |
| Luke | 32000 |
| Alexis | 33000 |
| Hannah | 30000 |
이 테이블은 두 개의 컬럼과 일곱 개의 행으로 구성되어 있으며, SQL CREATE TABLE과 INSERT 명령어로 생성했습니다.
연봉이 35,000달러 이상 55,000달러 이하인 직원의 이름과 급여를 조회하고 싶다면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT name, salary FROM employees WHERE salary BETWEEN 35000 AND 55000;
쿼리 실행 결과는 다음과 같습니다:
| name | salary |
| Geoff | 38000 |
| Emma | 50000 |
| Jonah | 50000 |
참고: 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);
쿼리 실행 결과는 다음과 같습니다:
| name | hire date |
| Luke | 2009-12-03 |
| Emma | 2010-03-19 |
| Mike | 2010-03-19 |
| Hannah | 2011-09-30 |
| Jonah | 2010-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 데이터베이스 언어 실력을 효과적으로 향상시킬 수 있습니다.