전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (171)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Database/Oracle

[Oracle] WHERE 절

2023. 6. 28. 17:33

  <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;  -- 위에도 가능하지만 일반적으로는 이 순서로 !!

    'Database/Oracle' 카테고리의 다른 글
    • [Oracle] LIKE
    • [Oracle] BETWEEN A AND B
    • [Oracle] DISTINCT
    • [Oracle] 연결 연산자 : ||
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바