쌍용교육(JAVA)/SQL

쌍용교육 -SQL 수업 16일차 (WHERE절,BETWEEN…AND…,IN(),실습문제)

구 승 2024. 4. 12. 08:47

WHERE절

WHERE절 사용 : 조건 체크 결과 행 제한하기
               (주의)알리아스를 사용할 수 없음()가 있으면 sql문으로 인식해서 2줄이 실행됨으로 에러가 날 수 있으니 줄을 드래그해서 실행해야됨.
SELECT * FROM emp WHERE deptno = 10;  /*deptno가 10인 행만 읽어오는 방법 ("="는 비교연산 JAVA의 "=="와 같은 뜻) */
/*데이터는 대소문자를 구분한다. ex: ename에 있는 CLARK는 대문자로 인식을 한다.*/
SELECT ename,job,deptno FROM emp WHERE ename = 'SMITH';

날짜는 문자열 형태로 인식한다.
SELECT * FROM emp WHERE hiredate > '81-12-03'; /* 81년 12월 03일 이후에 들어온 사람을 구한다.*/

SELECT * FROM emp WHERE hiredate < '81/12/03'; /*날짜는 하이픈(-)과 슬레쉬(/)로 지정하여 보여줄 수 있다.*/

(주의)WHERE절 에서는 알리아스를 사용할 수 없음 
/*에러나는 코드*/SELECT ename,sal,sal*12 ansal FROM emp WHERE ansal >15000; /*알리아스를 사용했기 때문에 에러가 난다.*/
SELECT ename,sal,sal*12  FROM emp WHERE sal*12 >15000;

SELECT * FROM emp WHERE hiredate != '80-12-17';
SELECT * FROM emp WHERE hiredate <> '80-12-17';
SELECT * FROM emp WHERE hiredate ^= '80-12-17';

SELECT * FROM emp WHERE sal > 2000 AND sal <=5000;
SELECT * FROM emp WHERE sal >= 800 AND sal <=3000;

BETWEEN…AND…

BETWEEN ...AND... : 두 값 사이 (지정한 값 포함)
SELECT * FROM emp WHERE sal BETWEEN 800 AND 3000;
SELECT * FROM emp WHERE sal NOT BETWEEN 800 AND 3000; /*BETWEEN ...AND...를 부정 즉 반대*/
SELECT * FROM emp WHERE ename BETWEEN 'KING' AND 'SMITH';  /*영문자 순서 A~Z순서*/
SELECT * FROM emp WHERE ename NOT BETWEEN 'KING' AND 'SMITH';

IN()

BETWEEN ...AND... : 두 값 사이 (지정한 값 포함)
SELECT * FROM emp WHERE sal BETWEEN 800 AND 3000;
SELECT * FROM emp WHERE sal NOT BETWEEN 800 AND 3000; /*BETWEEN ...AND...를 부정 즉 반대*/
SELECT * FROM emp WHERE ename BETWEEN 'KING' AND 'SMITH';  /*영문자 순서 A~Z순서*/
SELECT * FROM emp WHERE ename NOT BETWEEN 'KING' AND 'SMITH';

실습문제

BETWEEN ...AND... : 두 값 사이 (지정한 값 포함)
SELECT * FROM emp WHERE sal BETWEEN 800 AND 3000;
SELECT * FROM emp WHERE sal NOT BETWEEN 800 AND 3000; /*BETWEEN ...AND...를 부정 즉 반대*/
SELECT * FROM emp WHERE ename BETWEEN 'KING' AND 'SMITH';  /*영문자 순서 A~Z순서*/
SELECT * FROM emp WHERE ename NOT BETWEEN 'KING' AND 'SMITH';