오라클 sql과 pl/sql을 다루는 기술 - 4장.sql 함수
TRANSCRIPT
만든사람 및 책 소개
• 오라클 SQL과 PL/SQL을 다루는 기술 : 오라클 프로그래밍 , 현장 밀착 입문서는 따로 있다 !
• 홍형경
• 주요 저서 : - 〈뇌를 자극하는 오라클 프로그래밍 SQL&PL/SQL
- Head First 시리즈를 비롯해 다수의 책 번역
01
CEIL(n) : n 과 같거나 가장 큰 정수 반환
ABS(n) : n 의 절대값 반환
숫자함수
예 ) ABS(3) 3, ABS(-3) 3
예 ) CEIL(10.123) 11, CEIL(10.541) 11
FLOOR(n) : n 보다 작거나 가장 큰 정수 반환
예 ) FLOOR(10.123) 10, FLOOR(10.541) 10
ROUND(n, i) : n 을 소수점 기준 ( i+1 ) 번째에서 반올림한 결과 반환
예 ) ROUND(10.154) 10, ROUND(10.154, 2) 10.15
01
POWER(n2, n1) : n2 를 n1 제곱한 결과를 반환 , n2 가 음수이면 n1 은 반드시 정수
TRUNC(n1, n2) : n1 을 소수점 기준 n2 자리에서 무조건 잘라낸 결과를 반환
숫자함수
예 ) TRUNC(115.155) 115, TRUNC(115.155, 1) 115.1
예 ) POWER(3, 2) 9, POWER(3, 3) 27
SQRT(n) : n 의 제곱근 반환
예 ) SQRT(2) 1.41421356, SQRT(5) 2.23606798
MOD(n2, n1) : n2 를 n1 으로 나눈 나머지 값을 반환
예 ) MOD(19,4) 3, MOD(19.123, 4.2) 2.323
01
EXP(n) : 지수함수로 e 의 n 제곱 값을 반환
REMAINDER(n2, n1) : MOD 와 같으나 연산수식이 다름
숫자함수
• MOD n2 – n1 * FLOOR (n2/n1)• REMAINDER n2 – n1 * ROUND (n2/n1)
예 ) REMAINDER(19,4) -1, REMAINDER(19.123, 4.2) -1.877
예 ) EXP(2) 7.3890561
LN(n) : 자연로그 함수로 밑수가 e 인 로그함수
예 ) LN(2.713) 0.998055034
LOG(n2, n1) : n2 를 밑수로 하는 n1 의 로그값을 반환
예 ) LOG(10, 100) 2
02
LOWER(char) : 소문자 변환 후 반환
INITCAP(char) : char 의 첫 문자는 대문자로 , 나머지는 소문자로 반환 첫 문자 인식 기준은 공백 그리고 알파벳과 숫자를 제외한 문자
문자함수
예 ) INITCAP('never say goodbye') Never Say Goodbye
예 ) LOWER('NEVER SAY GOODBYE') never say goodbye
UPPER(char) : 대문자 변환 후 반환
예 ) UPPER('never say goodbye') NEVER SAY GOODBYE
CONCAT(char1, char2) : 두 문자를 붙여 반환
예 ) CONCAT('I Have', ' A Dream') I Have A Dream
02
SUBSTRB(char, pos, len) : SUBSTR 과 같으나 문자 개수가 아닌 바이트 수 단위
SUBSTR(char, pos, len) : char 의 pos 번째 문자부터 len 길이만큼 잘라낸 결과를 반환
문자함수
예 ) SUBSTR('ABCDEFG', 1, 4) ABCD, SUBSTR('ABCDEFG', -1, 4) G
예 ) SUBSTRB('ABCDEFG', 1, 4) ABCD, SUBSTRB(' 가나다라마바사 ', 1, 4) 가나
LTRIM(char, set) : char 에서 set 으로 지정된 문자열을 왼쪽 끝에서 제거 후 나머지 문자열 반환예 ) LTRIM('ABCDEFGABC', 'ABC') DEFGABC
RTRIM(char, set) : LTRIM 과 반대로 오른쪽 끝에서 제거한 뒤 나머지 문자열을 반환
예 ) RTRIM('ABCDEFGABC', 'ABC') ABCDEFG
02
RPAD(expr1, n, expr2) : LPAD 와는 반대로 오른쪽에 해당 문자열을 채워 반환
LPAD(expr1, n, expr2) : expr2 문자열을 n 자리만큼 왼쪽부터 채워 expr1 을 반환
문자함수
예 ) LPAD('111-1111', 12, '(02)') (02)111-1111
예 ) RPAD('111-1111', 12, '(02)') 111-1111(02)
REPLACE(char, search_str, replace_str) : char 에서 search_str 을 찾아 이를 re-place_str 로 대체한 결과를 반환예 ) REPLACE(' 나는 너를 모르는데 ', ' 나 ', ' 너 ') 너는 너를 모르는데
TRANSLATE(expr, from_str, to_str) : expr 에서 from_str 에 해당하는 문자를 찾아 to_str 로 한 글자씩 바꾼 결과 반환
예 ) TRANSLATE(' 나는 너를 모르는데 ', ' 나는 ', ' 너를 ') 너를 너를 모르를데
02
LENGTH( chr) : 문자열의 길이 반환
INSTR(str, substr, pos, occur) : str 에서 substr 과 일치하는 위치를 반환 , pos 는 시작위치 , occur 은 몇 번째 일치하는지를 명시
문자함수
예 ) LPAD('111-1111', 12, '(02)') (02)111-1111
예 ) LENGTH(' 대한민국 ') 4
LENGTHB( chr) : 문자열의 BYTE 수 반환
예 ) LENGTHB(' 대한민국 ') 8
03
날짜함수
SYSTIMESTAMP : 현재일자와 시간 반환 (TIMESTAMP)
SYSDATE : 현재일자와 시간 반환
예 ) SYSDATE 2015-03-16 22:10:56
예 ) SYSTIMESTAMP 2015-03-16 22:10:56.998000000 +09:00
ADD_MONTHS (date, integer) : date 에 integer 만큼 월을 더한 날짜 반환
예 ) ADD_MONTHS(SYSDATE, 1) 2015-04-16 22:10:33
MONTHS_BETWEEN(date1, date2): 두 날짜 사이의 개월 수 반환
예 ) MONTHS_BETWEEN(ADD_MONTHS(SYSDATE, 1), SYSDATE) 1
03
날짜함수
ROUND (date, format) : 반올림한 날짜 반환
LAST_DAY(date) : 해당 월의 마지막 일자 반환
예 ) LAST_DAY(SYSDATE) 2015-03-31 22:11:24
예 ) ROUND(SYSDATE, 'month') 2015-04-01 00:00:00 ( 현재일자가 3 월 16 일인 경우 )
TRUNC (date, format) : 잘라낸 날짜 반환
예 ) TRUNC(SYSDATE, 'month') 2015-03-01 00:00:00 ( 현재일자가 3 월 16 일인 경우 )
NEXT_DAY (date, char) : date 를 char 에 명시한 날짜로 다음주 주중 일자를 반환
예 ) NEXT_DAY(SYSDATE, ' 금요일 ') 2015-03-20 22:16:20
04
변환함수
TO_NUMBER(expr, format) : 문자나 다른 유형의 숫자를 NUMBER 형으로 변환
TO_CHAR ( 숫자 혹은 날짜 , format) : format 에 맞게 변환 후 결과 반환
예 ) TO_CHAR(123456789, '999,999,999') 123,456,789 TO_CHAR(SYSDATE, 'YYYY-MM-DD') 2015-03-16
예 ) TO_NUMBER('123456') 123456
TO_DATE (char, format) : DATE 형으로 변환
예 ) TO_DATE('20140101', 'YYYY-MM-DD') 2014/01/01 00:00:00
TO_TIMESTAMP(char, format) : TIMESTAMP 형으로 변환
예 ) TO_TIMESTAMP('20140101', 'YYYY-MM-DD') 2014-01-01 00:00:00.000000000
06
기타함수
LEAST (expr1, expr2, …) : 매개변수로 들어오는 표현식에서 가장 작은 값을 반환
GREATEST (expr1, expr2, …) : 매개변수로 들어오는 표현식에서 가장 큰 값을 반환
DECODE (expr, search1, result1, search2, result2, …, default) : expr 과 search1 을 비교해 두 값이 같으면 result1 을 반환 . 같지 않으면 다시 search2 와 비교해 값이 같으면 result2 를 반환 , 이런 식으로 계속 비교한 뒤 최종적으로 같은 값이 없으면 default 값을 반환한다 .