단일행 함수 : 여러건의 데이터를 한번에 하나씩만 처리하는 함수입니다
여러행 함수 : 여러건의 데이터를 입력받아서 결과값 한건을 만들어주는 함수입니다
SELECT 23*25
FROM DUAL;
결과 :
DESC DUAL;
출력시 :
SELECT * FROM DUAL;
출력 :
SELECT -10, ABS(-10)
FROM DUAL;
출력 :
SELECT 12.1234, FLOOR(12.1234)
FROM DUAL;
출력 :
SELECT 34.5678, ROUND(34.5678)
FROM DUAL;
출력 :
SELECT TRUNC(34.5678, 2), TRUNC(34.5678)
FROM DUAL;
출력 :
SELECT MOD(10, 3), MOD(10, 4)
FROM DUAL;
출력 :
SELECT 'Hello Oracle', UPPER('Hello Oracle')
FROM DUAL;
출력 :
SELECT 'hello oracle', INITCAP('hello oracle')
FROM DUAL;
출력 :
SELECT LENGTH('ORACLE'), LENGTH('오라클')
FROM DUAL;
출력 :
SELECT LENGTHB('ORACLE'), LENGTHB('오라클')
FROM DUAL;
출력 :
SUBSTR( 대상, 시작위치, 추출한 갯수)
오라클에서 index 는 1부터 시작합니다.
SELECT SUBSTR('oracle string test',8, 6)
FROM DUAL;
출력 :
SELECT *
FROM emp
WHERE SUBSTR(hiredate, 4, 2)='12';
출력 :
INSTR( 대상, 검색 글자, 시작위치, 몇번째 검색 )
SELECT INSTR('step by step', 't')
FROM DUAL;
SELECT INSTR('step by step', 't', 3)
FROM DUAL;
SELECT INSTR('step by step', 'e', 2, 2)
FROM DUAL;
SELECT INSTR('데이터베이스', '이', 3)
FROM DUAL;
SELECT LPAD('padding', 10, '#')
FROM DUAL;
출력 :
SELECT LTRIM(' TRIM TEST ')
FROM DUAL;
SELECT RTRIM(' TRIM TEST ')
FROM DUAL;
SELECT TRIM(' TRIM TEST ')
FROM DUAL;
SELECT SYSDATE
FROM DUAL;
출력 :
SELECT SYSDATE - 1 어제, SYSDATE 오늘, SYSDATE +2 모레
FROM DUAL;
출력 :
포맷 모델 단위
DDD 일단위 기준
HH 시간단위 기준
MONTH 월단위 기준( 16 기준)
SELECT ename,hiredate, ROUND(hiredate, 'MONTH')
FROM emp;
결과 :
SELECT ename, hiredate,TRUNC(hiredate, 'MONTH')
FROM emp;
결과 :
날짜와 날짜 사이의 개월수를 구합니다
MONTHS_BETWEEN( date_1, data_2 )
SELECT ename, SYSDATE, hiredate, MONTHS_BETWEEN( SYSDATE, hiredate)
FROM emp;
결과 :
SELECT SYSDATE, NEXT_DAY(SYSDATE, '월요일')
FROM DUAL;
결과 :
TO_CHAR : 날짜또는 숫자 타입을 문자형을 변환
T0_DATE : 문자 타입을 날짜 타입으로 변환
TO_NUMBER : 문자 타입을 숫자 타입으로 변환
TO_CHAR( 날짜데이터, '출력형식')
출력형식 종류 의미
YYYY 년도(4자리)
YY 년도(2자리)
MM 월을 숫자로 표현
MON 월을 알파벳으로 표현
DAY 요일 표현
SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
결과
AM or PM 오전(AM), 오후(PM)
HH or HH12 시간(1 ~ 12)
HH24 24시간
MI 분
SS 초
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD AM HH24:MI:SS') "현재시간"
FROM DUAL;
결과 :
구분 의미
0 자릿수를 나타내며, 자릴수가 맞지 않으면 0으로 채운다
9 자릿수를 나타내며, 자릴수가 맞지 않으면 0으로 채우지 않는다
. 소수점
, 천단위 자리 구분
SELECT TO_CHAR(12300)
FROM DUAL;
결과 :
SELECT TO_CHAR(12345, '0000000'), TO_CHAR(12345,'9999999')
FROM DUAL;
결과 :
SELECT ename, sal, TO_CHAR(sal, '999,999L')
FROM emp;
결과 :
문자열을 날짜 형식으로 변환합니다
TO_DATE( '문자', 'format')
숫자를 날짜형으로 변환
SELECT ename, hiredate
FROM emp
WHERE hiredate= TO_DATE(19801217,'YYYYMMDD');
결과 :
- 데이터를 숫자형으로 변환
SELECT TO_NUMBER('20,000','99,999')-TO_NUMBER('12,000','99,999')
FROM DUAL;
결과 :
SELECT *
FROM emp
WHERE MOD(empno,2) =1;
SELECT *
FROM emp
WHERE job=UPPER('manadger');
SELECT empno, ename ,job, deptno
FROM emp
WHERE LOWER(ename) = 'smith';
SELECT INITCAP('deptno'), INITCAP('dname'),INITCAP('loc')
FROM dept;
SELECT *
FROM emp
WHERE SUBSTR(ename, -1, 1) = 'E';
SELECT *
FROM emp
WHERE SUBSTR(ename,3,1) = 'R';
SELECT empno, ename, LENGTH(ename) , sal, LENGTH(sal)
FROM emp
WHERE deptno = 20;
SELECT ename, hiredate, SYSDATE, TRUNC(SYSDATE-hiredate) "근무일수"
FROM emp
ORDER BY TRUNC(SYSDATE-hiredate) DESC;