<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 |