<WHERE 절>
조회하고자 하는 테이블로부터 특정 조건에 만족하는 데이터만을 조회하고자 할 때 사용
이때 WHERE절에 조건식을 제시 하게 됨
조건식에서는 다양한 연산자를 사용 가능!
[표현식]
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
WHERE 조건식;
[비교연산자]
>, <, >=, <= --> 대소비교
= --> 동등비교
!=, ^=, <> --> 동등하지 않은지 비교
EMPLOYEE 에서 부서코드가 "D9"인 사원들만 조회(이때, 모든 컬럼 조회)
SELECT *
FROM EMPLOYEE
WHERE DEPT_CODE = 'D9';
EMPLOYEE에서 부서코드가 'D1'인 사원들의 사원명, 급여, 부서코드만 조회
SELECT EMP_NAME, SALARY, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE = 'D1';
EMPLOYEE에서 부서코드가 'D1'이 아닌 사원들의 사번, 사원명, 부서코드 조회
SELECT EMP_NAME, SALARY, DEPT_CODE
FROM EMPLOYEE
--WHERE DEPT_CODE != 'D1';
--WHERE DEPT_CODE ^= 'D1';
WHERE DEPT_CODE <> 'D1'; -- 위에 셋다 됨
급여 400만원 이상인 사원들의 사원명, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY > 4000000;
EMPLOYEE에서 재직중(EMT_YN 컬럽값이 'N')인 사원들의 사번, 이름, 입사일
SELECT EMP_ID, EMP_NAME, HIRE_DATE
FROM EMPLOYEE
WHERE ENT_YN = 'N';
실습 문제
1. 급여가 300만원 이상인 사원들의 사원명, 급여, 입사일, 연봉(보너스 미포함) 조회
SELECT EMP_NAME, SALARY, HIRE_DATE, SALARY * 12
FROM EMPLOYEE
WHERE SALARY >= 3000000;
2. 연봉이 5000만원 이상인 사원들의 사원명, 급여, 연봉, 부서코드 조회
SELECT EMP_NAME, SALARY, SALARY * 12 || '원' AS "연봉(원)" , DEPT_CODE
FROM EMPLOYEE
WHERE SALARY * 12 >= 50000000;
--WHERE SALARY >= 3000000; 오류 !! (WHERE절 에서는 SELECT 절에 작성된 별칭 사용 불가!!)
-- 이유는 ORACLE의 쿼리실행 순서를 보면 알 수 있다.
-- 쿼리 실행 순서
-- FROM절 => WHERE절 => SELECT절
3. 직급코드 J3'이 아닌 사원들의 사번, 사원명, 직급코드, 퇴사여부 조회
SELECT EMP_ID, EMP_NAME, SAL_LEVEL, ENT_YN
FROM EMPLOYEE
WHERE JOB_CODE != 'J3';
4. 부서코드가 'D9' 이면서 급여가 500만원 이상인 사원들의 사번, 사원명, 급여, 부서코드 조회
SELECT EMP_ID, EMP_NAME, SALARY, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE = 'D9' AND SALARY >= 5000000;
5. 부서코드가 'D6' 이거나 급여가 300만원 이상인 사원들의 사원명, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D6' OR SALARY >= 3000000;
6. 급여가 350만원 이상 600만원 이하를 받는 사원들의 사원명, 사번 급여 조회
SELECT EMP_NAME, EMP_ID, SALARY
FROM EMPLOYEE
--WHERE 3500000 <= SALARY <= 6000000; 오류발생 !! 자바랑 마찬가지임!
--WHERE 3500000 >= SALARY AND SALARY <= 6000000;
WHERE SALARY >= 3500000 AND SALARY <= 6000000; -- 위에도 가능하지만 일반적으로는 이 순서로 !!