Oracle DBA/SQL

20230621 (6) SQL 011 : 비교 연산자 2 (BETWEEN AND)

Nuez 2023. 6. 21. 15:34
반응형

* 기타 비교 연산자 4가지

 

1. BETWEEN .. AND

2. LIKE

3. IS NULL

4. IN


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

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

* 연봉 1000과 3000도 포함하면서 검색함. (위 아래 같은 코드)

 

* SQL의 실행 계획을 보는 명령어

: SQL의 검색 속도가 느릴 때 원인 파악을 위해 

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

SELECT * FROM TABLE(dbms_xplan.DISPLAY);

질의 결과 창에 출력된 파란 부분을 보면 WHERE절을 sal BETWEEN 1000 AND 3000 이렇게 기술해도

내부적으로는 sal >= 1000 AND sal <= 3000으로 수행하고 있음을 확인 할 수 있다.


문제36. 81년 01월 01일부터 81년 12월 31일에 입사한 사원들의 이름과 입사일을 출력하시오.

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

* 주의사항 : BETWEEN 과거의 날짜 AND 최근의 날짜

반대로 할 경우 오류가 나지는 않지만 출력 결과가 없음. 

 


문제37. 월급이 1000에서 3000 사이가 아닌 사원들의 이름과 월급을 출력하시오. 

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