<BETWEEN연산자>

 

SELECT 칼럼, ...
FROM 테이블
WHERE 컬럼 BETWEEN A AND B;

 

  •  (칼럼 >=A AND 컬럼 <=B) 와 같은 의미
  •  컬럼의 A부터 B사이 검색
  •  A는 B보다 작은 값이어야 한다.

 

--급여가 1000이상 2000이하
SELECT *
FROM emp
WHERE sal >=1000 AND sal <=2000;

SELECT *
FROM emp
WHERE sal BETWEEN 1000 AND 2000;


--10번~30부서 사원
SELECT *
FROM emp
WHERE dno BETWEEN '10' and '30';


--급여가 2000에서 1000사이
SELECT * 
FROM emp
WHERE sal BETWEEN 1000 AND 2000
ORDER BY sal DESC;

 

  • ALTER SESSION SET 

 

--1992년에서 1996년 사이에 입사한 사원
SELECT * 
FROM emp
WHERE hdate BETWEEN '1992/01/01' AND '1996/12/31'
ORDER BY hdate;

--DATE TYPE은 화면출력시 YY/MM/DD로 표기되지만 내부적으로는 YY/MM/DD/hh:mm:ss 를 포함
--조건문에 시분초를 지정하지않으면 기본값(00:00:00)으로 초기화

--그러므로 위의 예제는 1992/01/01/00:00:00 ~ 1996/12/31/00:00:00 의 범위만 포함한다.
-->만약 1996년 12월 31일 11시에 입사한 사원이 있다면 검색되지 않는다.

-->옳은 예시
ALTER SESSION SET 
nls_date_format='YYYY/MM/DD/HH24:MI:SS'; --1차실행 필요

SELECT *
FROM emp; --2차실행

SELECT *
FROM emp
WHERE hdate
BETWEEN '1992/01/01/00:00:00'
AND '1996/12/31/23:59:59'; --3차실행

 

 

 

 


<IN 연산자>

 

SELECT 칼럼, ...
FROM 테이블
WHERE 칼럼 IN (A, B, ..);

 

  • 지정한 값중 일치하면 검색
  • OR 과 =연사자로 교환 가능
  • 가독성우수

 

--개발이나 지원 업무 담당사원
SELECT * 
FROM emp
WHERE job = '개발' OR job = '지원';

SELECT * 
FROM emp
WHERE job IN ('개발', '지원');


--10, 20번 부서 검색
SELECT * 
FROM emp
WHERE dno = '10' OR dno ='20';

SELECT * 
FROM emp
WHERE dno IN ('10', '20');

 

 

 

 

 

<Exercise>

--1. 평점이  3.0 - 4.0 사이 학생 검색
SELECT *
FROM student
WHERE avr BETWEEN 3 and 4;


--2. 1994~1995 부임교수
SELECT *
FROM professor
WHERE hiredate BETWEEN '1994/01/01' and '1996/01/01';


--3. 화학 물리 생물 학생 검색
SELECT *
FROM student
WHERE major IN ('화학', '물리', '생물');


--4. 정교수와 조교수 검색
SELECT *
FROM professor
WHERE orders IN ('정교수', '조교수');


--5. 학점수가 1학점 2학점인 과목 검색
SELECT *
FROM course
WHERE st_num IN (1, 2);


--6. 1,2학년중 평점이 2~3사이인 학생
SELECT *
FROM student
WHERE (syear BETWEEN 1 AND 2 ) AND
(avr BETWEEN 2 AND 3);


--7. 화학 물리 1,2학년 학생을 성적순으로 검색
SELECT *
FROM student
WHERE major IN ('화학', '물리') AND syear IN (1,2 )
ORDER BY avr DESC;

'db : sql' 카테고리의 다른 글

Oracle/ 자기참조조인 & 외부조인  (0) 2020.02.25
Oracle/ RDB와 JOIN  (0) 2020.02.25
Oracle/ 관계연산자와 LIKE연산자  (0) 2020.02.25
Oracle/ Exercise 1  (0) 2020.02.25
Oracle/ WHERE절을 이용한 조건 검색  (0) 2020.02.25