1. DUAL 테이블
SQL함수에는 한줄로 데이터를 꺼낼수 있는 DUAL테이블이 존재한다.
ex) select 60*24 from dual;
2. SUM함수
SUM함수를 사용해서 칼럼에해당하는 값을 더한 총합을 출력할 수 있다.
그룹함수의 값은 여러개의 행에 대해서 1개의 행만을 출력해준다.
ex) 부서번호가 30인 사원의 총 급여
select deptno, sum(sal) from emp group by deptno having deptno = 30;
3. 단일행함수
- 행마다 함수가 적용되어 결과를 반환
- 문자, 숫자, 날짜, 변환, 일반함수
- 문자함수(LOWER, UPPER, SUBSTR, LENGTH, INSTR, TRIM등)
- 숫자함수
- ABS - 절대값 반환
- ROUND - 원하는 자리에서 반올림
- TRUNC - 원하는 자리에서 버림
- FLOOR - 소수점 다버림
- MOD(숫자, 나눌값) - 나머지를 반환
- 변환함수
- TO_CHAR - 날짜형 혹은 숫자형을 문자형으로 변환
- TO_DATE - 문자형을 날짜형으로 변환
- TO_NUMBER - 문자형을 숫자형으로 변환
- 일반함수
- NVL - 입력받은 값이 NULL이면 다음 값으로 변환
- DECODE - 첫 번째 인자로 받은 값을 조건에 맞춰 변경
4. 그룹함수
- 하나 이상희 행을 그룹으로 묶어 연산하여 총합, 평균등을 반환
- SUM, AVG, COUNT, MAX, MIN, STDDEV 등
- 그룹의 결과를 제한할 때는 HAVING절을 사용한다.
쿼리 예시)
select * from employees;
select first_name from employees where instr(first_name, 'e', 2) = 2;
select lpad('DataBase', 20, '$') from dual;
select trim('a' from 'aaaaaaDataBase programmingaaa') from dual;
select round(3.553, 2) from dual;
select abs(-32.22) from dual;
select floor(3.5525) from dual;
select trunc(3.5511, 2) from dual;
select first_name, employee_id from employees where mod(employee_id, 2) = 0;
select months_between(sysdate, hire_date) from employees where department_id = 90;
select sysdate from dual;
select to_char(sysdate, 'yyyy-mm-dd-day, HH24:MI:SS') from dual;
select to_char(salary, '999,999') from employees;
select to_date(19931029, 'yyyy-mm-dd') from dual;
select to_number('10000', '999,999') + to_number('200000', '999,999') from dual;
select nvl(manager_id, 0) from employees;
select count(*), count(department_id) from employees;
select distinct job_id from employees;
select count(distinct job_id) from employees;
select department_id, avg(salary) from employees group by department_id;
select department_id, count(*), count(commission_pct) from employees group by department_id;
select department_id, avg(salary) from employees group by department_id having avg(salary) >= 5000;
'DataBase > Oracle' 카테고리의 다른 글
Oracle(6) - JOIN (0) | 2019.04.17 |
---|---|
Oracle(5) - 무결성제약조건 (0) | 2019.04.17 |
Oracle(4) - DML, 트랜잭션 (0) | 2019.04.16 |
Oracle(3) - DDL (0) | 2019.04.16 |
Oracle(1) - SQL기본 (0) | 2019.04.12 |