본문 바로가기
초보자를 위한 SQL 200제/이론 & 예제

011 비교 연산자 배우기 (BETWEEN AND)

by Hwanii_ 2023. 7. 12.
728x90

두 값 사이의 값들을 검색하는 방법 이다.

 

BETWEEN AND 비교 연산자를 이용 하면 된다.

 

BETWEEN AND 연산자를 사용 하는 이유 :

 

>=, <=, >, < 비교 연산자 보다,

 

가독성이 좋고, 코드가 심플해진다.

 

1.

월급이 1000에서 3000 사이인 사원들의 이름과 월급 출력 하기.

 

SELECT ename, sal
FROM emp
WHERE sal BETWEEN 1000 AND 3000;

 

ENAME             SAL
---------- ----------
BLAKE            2850
CLARK            2450
JONES            2975
MARTIN           1250
ALLEN            1600
TURNER           1500
WARD             1250
FORD             3000
SCOTT            3000
ADAMS            1100
MILLER           1300

11개 행이 선택되었습니다.

 

BETWEEN AND 를 사용 할 경우, 주의 사항은 다음과 같다.

 

BETWEEN 하한값 AND 상한값 순으로 작성 해야 한다.

 

BETWEEN 상한값 AND 하한값 순으로 작성 하면 검색이 되지 않는다.

 

SELECT ename, sal
FROM emp
WHERE sal BETWEEN 3000 AND 1000;

선택된 행 없음

 

2.

위의 SQL 구문은, 비교 연산자인 >= 와 <= 를 사용한 SQL 구문과 동일 하다.

 

SELECT ename, sal
FROM emp
WHERE (sal >= 1000 AND sal <= 3000);

ENAME             SAL
---------- ----------
BLAKE            2850
CLARK            2450
JONES            2975
MARTIN           1250
ALLEN            1600
TURNER           1500
WARD             1250
FORD             3000
SCOTT            3000
ADAMS            1100
MILLER           1300

11개 행이 선택되었습니다.

 

짚고 넘어갈 부분 : AND 를 사용한 점이다. && 이런게 아니라, AND 이다.

 

3.

월급이 1000 에서 3000 사이가 아닌 사원들의 이름과 월급을 조회 하기.

 

BETWEEN AND 구문 앞에 NOT 만 붙혀 주면 된다.

 

SELECT ename, sal
FROM emp
WHERE sal NOT BETWEEN 3000 AND 1000;

ENAME             SAL
---------- ----------
KING             5000
BLAKE            2850
CLARK            2450
JONES            2975
MARTIN           1250
ALLEN            1600
TURNER           1500
JAMES             950
WARD             1250
FORD             3000
SMITH             800

ENAME             SAL
---------- ----------
SCOTT            3000
ADAMS            1100
MILLER           1300

14개 행이 선택되었습니다.

 

4.

위의 SQL 구문은, 비교 연산자인 > 와 < 를 사용한 SQL 구문과 동일 하다.

= (이퀄) 이 붙지 않는다.

 

SELECT ename, sal
FROM emp
WHERE (sal < 1000 OR sal > 3000);

ENAME             SAL
---------- ----------
KING             5000
JAMES             950
SMITH             800

 

짚고 넘어갈 부분 : OR 를 사용한 점이다. || 이런게 아니라, OR 이다.

 

월급이 1000 보다 작고, 월급이 3000 보다 큰 사원의 이름을 출력한 모습 이다.

 

5.

1982 년도에 입사한 사원들의 이름과 입사일을 조회 하기.

 

SELECT ename, hiredate
FROM emp
WHERE hiredate BETWEEN '1982/01/01' AND '1982/12/31';

ENAME      HIREDATE
---------- --------
SCOTT      82/12/22
MILLER     82/01/11

 

모든 한 해는, 01월 01일 부터, 12월 31일 까지 있으므로,

위와 같이 BETWEEN AND 구문을 작성 하여 조회 할 수 있다.

 

6.

BETWEEN AND 구문은 MySQL 에서도 동일한 문법으로 사용 할 수 있다.

 

 

 

 

 

반응형