DBMS/Oracle SQL
DBMS 산술 연산자
따`ddah
2024. 2. 23. 22:35
1. 연산자 (Operator)
- 예시) 데이터를 조회할 때 SALARY에서 1,000원씩 빼서 조회하겠다 할 때 사용
연산자 종류 : 1. 연결 연산자 2. 산술 연산자 3. 관계 연산자 4. SQL 연산자 5. 논리 연산자 |
2. 산술 연산자
- [ + ] [ - ] [ * ] [ / ]
- 피연산자에 숫자 타입과 날짜 타입을 사용할 수 있다.
- [ + ] [ - ] 연산자에는 DATE 타입도 가능하다.
자료형별 연산 | 결과(타입) |
숫자와 숫자의 연산 | NUMBER |
날짜와 숫자간의 [ + ] [ - ] 연산 | DATE (숫자 1 == 1일) |
- 날짜와 날짜간의 [ - ] 연산 | NUMBER |
3. 전체 쿼리문
-----------------------------------------------------------------
-- 산술 연산자
-----------------------------------------------------------------
-- 숫자타입끼리의 산술 연산
SELECT
SALARY,
SALARY + 10000,
SALARY - 1000,
SALARY * 10,
SALARY / 10
FROM
EMPLOYEES;
-- 날짜타입간의 산술 연산
-- 날짜값과 숫자값 연산에서는 + , - 만 가능
-- 숫자값 1은 날짜로 1일을 의미한다.
SELECT
HIRE_DATE,
HIRE_DATE + 10,
HIRE_DATE - 10
FROM
EMPLOYEES;
-- 날짜 값과 날짜 값의 연산
-- 결과 : 숫자 타입이다.
-- sys(tem)date : 현재 날짜와 시간을 반환한다 (오라클 제공)
SELECT
HIRE_DATE,
SYSDATE,
SYSDATE - HIRE_DATE
FROM
EMPLOYEES;
-----------------------------------------------------------------
-- [실습]
-----------------------------------------------------------------
-- 직원 이름, 봉급, 인상봉급, 감축봉급 조회
-- 인상봉급은 기존 봉급의 10% 증가 , 감축봉급은 기존 봉급의 10% 감소
SELECT
FIRST_NAME 이름,
SALARY 봉급,
SALARY * 1.1 인상봉급,
SALARY * 0.9 감축봉급
FROM
EMPLOYEES;
-----------------------------------------------------------------
-- [실습]
-----------------------------------------------------------------
-- 직원의 이름, 시급, 일급, 월급, 연봉을 조회한다.
-- 이름은 성 + 이름이 연결되어있으며 별칭은 이름으로 설정
-- 현재 나오는 봉급은 시급기준
-- working days: 365days, working hours per day: 8hours
-- 월급은 30일 기준으로 계산
SELECT
LAST_NAME ||' '|| FIRST_NAME 이름,
SALARY 시급,
SALARY * 8 일급,
SALARY * 8 * 30 월급,
SALARY * 8 * 365 연봉
FROM
EMPLOYEES;
728x90