본격적으로 SQL 을 시작해보자.
원하는 데이터만 가져오기 위한!!
WHERE 조건과 비교 연산자.
* 형식 *
SELECT *
FROM table_name
WHERE 조건절 ;
WHERE 의 구성 WHERE SAL(컬럼) =(연산자) 3000;(대상값)
SELECT *
FROM emp
WHERE deptno=10;
10번 부서의 사원 출력.
SELECT *
FROM emp
WHERE sal<=1500;
급여가 1500 이하인 사원 출력
SELECT empno 사원번호,ename 사원명, sal 급여
FROM emp
WHERE ename='FORD';
비교대상의 대소문자 구분과 작은따옴표를 기억하자.
논리연산자
AND 연산자
두 가지 조건을 모두 만족시 출력
SELECT *
FROM emp
WHERE deptno=10 AND job =’MANAGER’;
OR 연산자
두 가지 조건 중 하나만 만족하더라도 출력
SELECT *
FROM emp
WHERE deptno=10 or job =’MANAGER’;
NOT 연산자
조건에 만족하지 않는 값들만 출력.
SELECT *
FROM emp
WHERE NOT deptno=10;
논리연산자 예제
SELECT *
FROM emp
WHERE comm=300 OR comm=500 OR comm=1400;
커미션이 300 또는 500 또는 1400인 사원 조회.
BETWEEN AND 연산자 **(오라클에서만 쓰일 수 있다.)
SELECT *
FROM emp
WHERE SAL >= 2000 AND SAL<=3000;
이렇게 썻던 걸.
SELECT *
FROM emp
WHERE SAL BETWEEN 2000 AND 3000;
이렇게 사용한다는 것.
(다만 SAL 이기 때문에 NUMBER TYPE을 쓰겠구만)
그러면 이런식으로 응용도 가능하지.
SELECT *
FROM emp
WHERE SAL NOT BETWEEN 2000 AND 3000;
2000미만 3000초과.
SELECT *
FROM emp
WHERE HIREDATE BETWEEN '1980/01/01' AND '1980/12/31';
80년도 입사한 사원만 출력.
IN연산자.
SELECT *
FROM emp
WHERE comm=300 OR comm=500 OR comm=1400;
이거를
SELECT *
FROM emp
WHERE COMM IN(300,500,1400);
으로 사용할 수 있음
예제
사원번호가 7521도, 7654도, 7844도 아닌 사원을 검색하시오.
SELECT *
FROM emp
WHERE EMPNO NOT IN (7521,7654,7844);
예제2
SELECT *
FROM emp
WHERE COMM NOT IN (300,500,1400);
커미션이 300,500,1400 을 제외한 사원
어! 그런데 모든 사원이 나오지 않는다 왤까?
이유는 COMM 란이 NULL 이기 때문이다.
그럼 커미션이 300,500,1400 을 제외한 모두를 표시하려면!?
SELECT *
FROM emp
WHERE NVL(COMM,0) NOT IN (300,500,1400);
COMM이 NULL 이지만
NAL 으로 COMM을 0으로 변환 시켯기 때문에 NULL이 아니게 되고 정상 출력이 된다.
'휴지통 > 휴지통1' 카테고리의 다른 글
JAVA - 채팅프로그래밍. (0) | 2015.12.23 |
---|---|
SQL 4일차 - 주요 함수 (0) | 2015.12.23 |
SQL 2일차 - 명령어 (0) | 2015.12.22 |
SQL 2일차 - SELECT (0) | 2015.12.22 |
SQL 1일차 - 데이터형. (0) | 2015.12.22 |
댓글