16
The Technique of Java Programming

오라클 SQL과 PL/SQL을 다루는 기술 - 4장.SQL 함수

Embed Size (px)

Citation preview

The Technique of Java Programming

들어가기

이 자료는 교육 등 비영리 목적으로만 사용해야 합니다 !!!!

만든사람 및 책 소개

• 오라클 SQL과 PL/SQL을 다루는 기술 : 오라클 프로그래밍 , 현장 밀착 입문서는 따로 있다 !

• 홍형경

• 주요 저서 : - 〈뇌를 자극하는 오라클 프로그래밍 SQL&PL/SQL

- Head First 시리즈를 비롯해 다수의 책 번역

SQL 함수첫째 마당 오라클 프로그래밍의 시작 , SQL

4 장

01 숫자함수

문자함수

날짜함수

변환함수

NULL 관련 함수

기타함수

02

03

SQL 함수

04

06

05

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 값을 반환한다 .