오라클 함수
* 산술함수
abs(n) : n의 절대값
ceil(n) : n보다 크거나 같은 최소정수
cos(n) : n의 cosine 값
cosh(n) : n의 hyperbolic cosine 값
exp : e의 n지수승
floor(n) : n보다 작거나 같은 최대정수
mod(m,n) : m을 n으로 나눈 나머지
power(m,n) : m의 n지수승
sign(n) : n<0이면 -1 / n=0이면 0 / n>0이면 1
sin(n) : n의 sine값
sqrt(n) : n의 루트근 / n<0이면 null
tan(n) : n의 tangent
greatest(a,b,c..) : 그중 가장 큰 값
least(a,b,c...) : 그중 가장 작은 값
round(n,2) : n을 소숫점 2자리에서 사사오입한 값
to_number : 숫자를 포함하는 char값을 number로 변환
trunc : 소숫점이하 ~ 자리에서 잘사한 값
* 문자열함수
decode(GRADE, 'A', 4, 'B', 3, 0) : GRADE필드값이 'A'이면 4, 'B'이면 3, 아니면 0
initcap : 단어의 첫문자를 대문자로
instr(LOC, '') : LOC에서 처음으로 나타나는 공백의 위치를 리턴
length : 길이를 리턴
lower : 소문자로 변환
upper : 소문자를 대문자로 변환
substr(GRADE, 1, 2) : GRADE필드값의 처음 2문자 리턴
dump : oracle 내부 저장형식
user : 현재 oracle 에 접속한 사용자명
replace(char1, str1, str2) : char1에서 str1을 str2로 변환
* 날짜포맷
YYYY또는 SYYY : 년의표시. S를 지정하면 기원전에 -붙는다
YYY, YY, Y : 년의 아래 3자리, 2자리, 1자리
SYEAR or YEAR : 년을 절차로 표시. S를 지정하면 기원전에 -
Q : 년의 1/4
MM : 월
MONTH or MON : 월의 명칭 또는 3문자의 단축형
DDD, DD, D : 년,월,주의 몇번째 날인가 표시
DAY, DY : 요일 또는 3문자의 단축형
AM, PM : 오전(AM)과 오후(PM)의 표시
HH 또는 HH12 : 시각(1~12)
HH24 : 시각(0~23)
MI : 분
SS : 초
* 날짜함수
add_months(D, N) : 날짜 D에 N개월을 가산한다
greatest(D1, D2) : D1과 D2에서 늦은쪽의 날짜
least(D1, D2) : D1과 D2에서 빠른쪽의 날짜
last_day(HIREDATE) : HIREDATE가 포함되어 있는 월의 마지막 일
month_between(A, B) : B부터 A까지의 월 수
next_day(hdate, 'FRIDAY') : hdate후의 첫 금요일
round(hdate) : hdate를 일을 단위로 하여 사사오입
to_char(FDATE, 'YYYY-MM-DD') : FDATE날짜의 값을 우측 포맷형식으로 문자열변환
to_date(FDATE, 'YYYY-MM-DD') : 우측 포맷형식으로 된 문자열을 날짜타입으로 변환
* 존재를 테스트하는 서브쿼리 : EXISTS
- 서브쿼리가 적어도 1행이상 리턴시 참. 아니면 거짓
* 합집합, 교집합, 차집합
UNION : 합집함. 동일한 행 리턴시 한건으로 표시
UNION ALL : 중복된 값도 모두 표시
INTERSECT : 교집합. 양쪽 쿼리 모두에서 리턴된 행 표시
MINUS : 차집합. 앞의 쿼리에서는 리턴되지만 뒤의 쿼리에서는 리턴되지 않는 행을 리턴
< 문자관련 함수 >
- lower(문자) : 문자를 소문자로
- upper(문자) : 문자열 대문자로
- initcap(문자) : 첫글자만 대문자로
- concat(문자, 문자) : 두문자를 연결
- substr(문자열, 시작숫자, 갯수) : 시작숫자부터 갯수 만큼 문자 추출
- instr(문자열, 찾을문자, 시작위치, 몇번째) : 찾을 문자가 몇번째에 있는지 숫자를 반환
- length(문자열) : 문자열의 문자갯수 반환
- lpad(문자열, 최대길이, 채울문자) : 문자열의 왼쪽을 채울문자로 채움
- rpad(문자열, 최대길이, 채울문자) : 문자열의 오른쪽을 채울문자로 채움
< 숫자관련 함수 >
- round(숫자, 자릿수) : 자릿수 0 ->소수 첫째자리에서 반올림,
자릿수 1 ->소수 둘째자리에서 반올림,
자릿수 -1 ->정수 1의자리에서 반올림
- trunc(숫자, 자릿수) : 내림
- mod(숫자1, 숫자2) : 숫자1에서 숫자2를 나눈 나머지를 구함
< 날짜관련 함수 >
- select sysdate : sysdate는 현재시각을 의미
- months_between(날짜, 날짜) : 두 날짜사이의 개월차이를 반환
- add_month(날짜, 숫자) : 월에 더한다.
- next_day(날짜, 요일) : 1=일요일, 7=토요일 날짜이후에 해당하는 요일의 날짜를 반환
- last_dat(날짜) : 날짜의 월에 마지막 날짜를 반환.
- round(날짜, 단위) : 날짜를 입력단위(day, month, year)로 반올림. 기본값 day.
- trunc(날짜, 자릿수) : 날짜를 입력단위(day, month, year)로 내림.
< 변환함수 >
- to_char(인자, ['문자열 형식']) : 인자를 문자로 변환, 문자열 형식대로 변환가능
ex) 날짜 yy-mm/mon/month-dd hh/hh12/hh24:mi:ss, am/pm, ddsp->영문
숫자 9->숫자위치, 0->0으로 채움, L->지역화폐
- to_number(인자) : 숫자로 변환
- to_date(인자) : 날짜로 변환
RR 날짜타입=50년 기준 00~49는 2000년도 // 50~99 1900년도
< Null관련 함수 > (인자끼리 모두 값은 데이터형이어야 한다.)
- NVL(대상, 대상이 Null이면 반환할 값) : 비교대상이 Null인지를 확인하여 값을 대체
- NYL2(대상, Null이 아닐 때 값, Null일때 값)
- NULLIF(인자1, 인자2) : 두 인자가 같은 값이면 Null을 반환, 아니면 인자1 값 반환
- COALESCE(1,2,3,4,5,6,.....) : Null이 아닌 인자의 값을 반환.
- CASE 대상 WHEN 비교값 THEN 반환값 ELSE 반환값 END : ELSE 구문 없으면 Null값 반환
- DECODE(대상, 비교값, 반환값, 비교값, 반환값, ELSE반환값) : 해당컬럼 값의 일치여부에 따라 다른 값을 반환. 케이스문을 콤마로만 구분.
< 날짜표시 함수 >
- tz_offset(타임존 명칭) : asia/seoul 한국의 타임셋 표시해줌.
< 그룹 함수 > : count(*)를 제외한 Null값에 대해서는 아예 계산에 포함하지 않음. 구문에 distinct가능, group by시 중첩가능
- count()
- sum()
- avg()
- max()
- min()
- stddev() : 표준편차
- variance() : 분산