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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Database/Oracle

[Oracle] 연산자 우선 순위

2023. 6. 30. 19:02

<연산자 우선 순위>

    0. ( )
    1. 산술연산자
    2. 연결연산자
    3. 비교연산자
    4. IS NULL / LIKE '특정패턴' / IN
    5. BETWEEN A AND B
    6. NOT (논리연산자)
    7. AND (논리연산자)
    8. OR (논리연산자) --> 얘네가 중요함


직급코드가 J7이거나  J2인 사원들 중 급여가 200만원 이상인 사원들의 모든 컬럼 조회

 

SELECT *
FROM EMPLOYEE
WHERE JOB_CODE = 'J7' OR JOB_CODE = 'J2' AND SALARY >= 2000000; -- AND가 우선순위가 OR 보다 높기 때문에 이상하게 나옴

연산자 우선 순위를 고려하지 않아서 데이터가 이상하게 나온다.

 

연산자 우선 순위를 고려하여 작성해보자

SELECT *
FROM EMPLOYEE
--WHERE JOB_CODE = 'J7' OR JOB_CODE = 'J2' AND SALARY >= 2000000; -- AND가 우선순위가 OR 보다 높기 때문에 이상하게 나옴
WHERE (JOB_CODE = 'J7' OR JOB_CODE = 'J2') AND SALARY >= 2000000;

잘 나온다.


실습문제

 

1. 사수가 없고 부서배치도 받지 않은 사원들의 (사원명, 사수사번, 부서코드) 조회

SELECT EMP_NAME, MANAGER_ID, DEPT_CODE
FROM EMPLOYEE
WHERE MANAGER_ID IS NULL AND DEPT_CODE IS NULL;

 

2. 연봉(보너스미포함)이 3000만원 이상이고 보너스를 받지 않는 사원들의 (사번, 사원명, 급여, 보너스) 조회

SELECT EMP_ID, EMP_NAME, SALARY, BONUS
FROM EMPLOYEE
WHERE SALARY * 12 >= 30000000 AND BONUS IS NULL;

 

3. 입사일이 '95/01/01'이상이고 부서배치를 받은 사원들의 (사번, 사원명, 입사일, 부서코드) 조회

SELECT EMP_ID, EMP_NAME, HIRE_DATE, DEPT_CODE
FROM EMPLOYEE
WHERE HIRE_DATE >= '95/01/01' AND DEPT_CODE IS NOT NULL;

 

4. 급여가 200만원 이상 500만원 이하이고 입사일이 '01/01/01' 이상이고 보너스를 받지 않는 사원들의
-- (사번, 사원명, 급여, 입사일, 보너스) 조회

SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE, BONUS
FROM EMPLOYEE
WHERE SALARY BETWEEN 2000000 AND 5000000 AND HIRE_DATE >= '01/01/01' AND BONUS IS NULL;

 

5. 보너스포함 연봉이 NULL이 아니고 이름에 '하'가 포함되어있는 사원들의 (사번, 사원명, 급여, 보너스포함연봉) 조회

SELECT EMP_ID, EMP_NAME, SALARY, (SALARY + SALARY * BONUS) * 12 AS "보너스포함연봉"
FROM EMPLOYEE
WHERE (SALARY + SALARY * BONUS) * 12 IS NOT NULL AND EMP_NAME LIKE '%하%';

 

    'Database/Oracle' 카테고리의 다른 글
    • [Oracle] 함수(FUNCTION)
    • [Oracle] ORDER BY 절
    • [Oracle] IN
    • [Oracle] IS NULL / IS NOT NULL
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바