오라클 함수
<단일행 함수>
1.문자함수
a)대문자 변환 : UPPER(문장열)
b)소문자 변환 : LOWER(문자열)
c)이니셜 변환 : INITCAP(문자열) => 오라클에서만 존재
d)문자 분해 : SUBSTR(문자열, 시작점, 글자갯수(1~))
e)빈 글자 수, 특정 문자로 채우기 : RPAD(문자열,글자수,'문자')
LPAD(문자열,글자수,'문자')
=>글자 수 만큼 문자열이 채우지 못한 부분을 '문자'가 대신해서 채워준다.
f)문자 길이 : LENGTH(문자) => 문자 갯수
LENGTHB(문자) => 문자 바이트
g)특정 문자 제거 : LTRIM(문자,'문자') => 문자 중 '문자'를 제거
RTRIM(문자,'문자') => 문자 중 '문자'를 제거
TRIM('문자'FROM 문자) => 좌우, 문자 중 '문자'를 제거
h)특정 문자의 위치 : INSTR(문자 or 칼럼,'문자',문자의 위치)
시작지점 1: 앞에서 부터
-1: 뒤에서 부터
비교형식 0: 기본값
1: 대소문자 구분
2: 데이터베이스에 포함된 구조
i) 문자열 결합 : △||연산자(결합 연산자)를 이용하여 문자열 결합
ex) lastName||' '||firstName === ' '(공백)포함 결합
2.숫자 함수
a)올림 함수 : CEIL(10.3) => 결과 : 11
b)반올림 함수 : ROUND(15.579,2) => 소수점 이하 2+1번째를 반올림 나타낸다. 결과 : 15.58
c)버림 함수 : TRUNC(숫자,대상(n+1))
d)나머지 함수 : MOD(10,2) => 결과 10%2 => 0
3.날짜 함수
a)시스템 시간 : SYSDATE
b)둘 사이의 총 개월 수 : MONTHS_BETWEEN(SYSDATE,'2016/01/01') ==> 오라클에만 있음
c)해당 달의 마지막 날 : LAST_DAY(날짜)
ex) SELECT LAST_DATE('16/03/01') FROM dual;
d)해당 날짜 다음에 나오는 '요일'의 일자: NEXT_DAY(날짜,'요일') => 해당 날짜의 다음날부터 계산
e)더한 날짜를 계산 : ADD_MONTHS(date, integer) ==> 더할 정수 값
f)원하는 것 빼오기 : EXTRACT(날짜)
ex) SELECT EXTRACT(YEAR FROM hiredate) from emp 하게 되면
hiredate의 1988-08-18 형태에서 YEAR만 뽑아온다.
그래서 결과는 1988이 조회된다.
4.기타 함수
a) NVL() => null 값을 다른 값으로 채워준다
ex) NVL(comm,0)
b) DECODE(해당 칼럼, 조건값, 충족시 실행값)
ex) DECODE(deptno,'10','영업부', '20','기획부','30','개발부')
c)CASE
SELECT ename,job CASE MOD(EXTRACT(YEAR FROM hiredate),2)
WHEN 0 THEN '짝수년도'
ELSE '홀수년도'
END AS YEAR
FROM emp;
5.변환 함수
a)날짜, 시간, 돈을 문자로 변환 : T0_CHAR(datetime)
: To_CHAR(number)
b)문자를 숫자로 변환 : TO_NUMBER
c)날짜 형식으로 변환 : TO_DATE
ex) 돈
SELECT ename,sal,TO_CHAR(sal,'$99,999') FROM emp;
SELECT ename,sal,TO_CHAR(sal,'L99,999') FROM emp; => L(Local)은 지역 화폐단위를 뜻함
ex) 날짜 패턴 변경
SELECT ename,hiredate,TO_CHAR(hiredate,'YYYY-MM-DD HH24:MI:SS') FROM emp;
SELECT ename,sal,comm,sal+NVL(comm,0) FROM emp;
※ 날짜 표현 방식
YYYY:년
MM:월(01~12)
DD:일(1~31)
HH24:시간(0~23)
HH12:시간(0~12)
MI:분(0~59)
SS:초(0~59)
출처 : blog.naver.com/lakeni/220641712753
'데이터베이스' 카테고리의 다른 글
cascade 예제 (0) | 2016.08.15 |
---|