SQL 범위 검색하기 ( BETWEEN )

SQL 범위 검색하는 방법에 대해 포스팅하려고 합니다

일단 작업 배경이 될 테이블을 하나 준비했습니다

TABLE 이름은 member입니다

이곳에서 샐러리가 5000 이상 10000 이하인 사람의 이름을 검색해보겠습니다

SELECT name FROM member WHERE salary >= 5000 AND salary <= 10000

이런 식으로 검색을 할 수 있지만 훨씬 간편한 BETWEEN 이 있습니다

사용법은 WHERE 칼럼명 BETWEEN A AND B 입니다

칼럼에 A와 B사이에 해당하는 값을 나타냅니다

** BETWEEN 은 앞에 오는 값이 무조건 작은 값 이어야 합니다


예제로 이해하기

SELECT name FROM member WHERE salary BETWEEN 5000 AND 10000

샐러리가 5000 이상 10000 이하인 값인 '강감찬' 출력이 됩니다

 

문자열도 비교 가능합니다

SELECT * FROM member WHERE name BETWEEN '강감찬' AND '홍길동'

문자를 '아마' 아스키코드 값으로 변경해서 비교하는 걸로 알고 있습니다

그래서 강감찬부터 홍길동으로 검색하면 모든 값이 출력이 됩니다

BETWEEN '강' AND '홍길' 로검색하면 홍길동을 제외한 값들이 출력되고 

BETWEEN '강' AND '홍홍홍'으로 검색하면 모든 값 들이 출력됩니다 느낌 아시겠죠??

 

날짜도 비교 가능합니다

SELECT name FROM member WHERE date BETWEEN '9/11/2001' AND '9/11/2019'

위에 테이블에선 날짜 칼럼이 없지만 있다고 가정하고 하겠습니다.

date 값이 2001년 9월 11일 00시부터

2019년 9월 11일 00시(19년 9월 11일 데이터 미포함)에  해당하는 값이 출력됩니다

 

NOT BETWEEN을 통해 해당 범위에 해당하지 않는 값을 가져올 수도 있습니다

SELECT * FROM member WHERE salary NOT BETWEEN 5000 AND 10000

이렇게 하면 샐러리가 5000 이상 10000 이하가 아닌 값들 즉 강감찬을 제외하고 모두 출력됩니다

 

BETWEEN 구문은 폭넓게 많이 사용됩니다

연구하셔서 응용 예제도 많이 만들어보시고 적절하게 잘 사용하시기 바랍니다~