IN 연산자를 쓰지 않았을 때,
SELECT *
FROM EMP
WHERE JOB = 'MANAGER'
OR JOB = 'SALESMAN'
OR JOB = 'CLERK';
-- 특정 열에 포함된 데이터를 여러개 조합할 때 사용
IN 연산자 사용
SELECT *
FROM EMP
WHERE JOB IN('MANAGER', 'SALESMAN', 'CLERK');
IN 연산자를 사용하여 부서번호가 10과 20번인 사원의 사원번호, 이름, 입사일, 급여 출력
SELECT EMPNO 사원번호, ENAME 이름, HIREDATE 입사일, SAL 급여
FROM EMP
WHERE DEPTNO IN('10', '20');
등가 비교연산자와 AND 연산자
SELECT *
FROM EMP
WHERE JOB != 'MANAGER'
AND JOB <> 'SALESMAN'
AND JOB ^= 'CLERK';
급여가 2000에서 3000 사이를 표시
SELECT *
FROM EMP -- BETWEEN 2000 AND 3000 => 2000과 같거나 크고 3000과 같거나 작음
WHERE SAL BETWEEN 2000 AND 3000;
BETWEEN 절을 사용해서 급여가 1000에서 2500 사이이고, 부서가 10,20 아닌 사원 출력
SELECT *
FROM EMP
WHERE SAL BETWEEN 1000 AND 2500
AND NOT DEPTNO IN(10, 20);
BETWEEN 절을 사용해서 사원번호가 7000에서 7999 사이이고, 입사일이 81년 5월 1일 이후인 사람 출력
SELECT *
FROM EMP
WHERE EMPNO BETWEEN 7000 AND 7999
AND HIREDATE > '81/05/01';
1980년이 아닌 해에 입사한 사원을 조회해서 출력
SELECT *
FROM EMP
WHERE HIREDATE NOT BETWEEN '80/01/01' AND '80/12/31';
% : 길이와 상관없이 모든 문자 데이터를 의미
_ : 문자 1자를 의미
SELECT *
FROM EMP
WHERE ENAME LIKE '_M___';
SELECT *
FROM EMP
WHERE ENAME LIKE '_L%';
이름에 AM이 포함되어 있는 사원 출력
SELECT *
FROM EMP
WHERE ENAME LIKE '%AM%';
이름에 AM이 포함되어 있지 않은 사원 출력
SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%AM%';
NULL 이란 ? 0이 아니고 빈공간이 아님을 의미. 즉 미확정된 값이라는 의미
SELECT *
FROM EMP
WHERE COMM IS NULL;
SELECT *
FROM EMP
WHERE COMM IS NOT NULL;
MGR이 있는 사원만 출력하기
SELECT * FROM EMP
WHERE MGR IS NOT NULL;
SELECT * FROM EMP
ORDER BY SAL ASC;
사원번호 기준으로 오름차순 정렬하기
SELECT * FROM EMP
ORDER BY EMPNO;
급여 기준으로 오름차순 하고 급여가 같은 경우 이름 기준
SELECT * FROM EMP
ORDER BY SAL, ENAME;
급여 기준으로 오름차순 하고 급여가 같은 경우 이름 내림차순 정렬
SELECT * FROM EMP
ORDER BY SAL, ENAME DESC;
SELECT ENAME || 'S JOB IS ' || JOB AS EMPLOYEE
FROM EMP;