국비지원_Java/Java Programming_1

자바 프로그래밍_Day_27_함수(Function)

dev_1cm 2021. 9. 30. 16:45
반응형

 

 

2021. 09. 27

 

 

     > 함수(Function)

       -> 하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여 작성해 놓은 작은 서브 프로그램이다.

       -> 호출하며 값을 전달하면 결과를 리턴하는 방식으로 사용한다.

 

     > 함수(Function) 유형

       -> 단일 행 함수 : 각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과를 반환

       -> 그룹 함수 : 특정 행들의 집합으로 그룹이 형성되어 적용되며, 그룹 당 1개의 결과를 반환한다.

 

 

     > 문자 처리 함수

구분 입력 값 타입 리턴 값 타입 설명
LENGTH CHARACTER NUMBER 문자열 길이 반환
LENGTHB 문자열의 바이트 크기 반환
INSTR 특정 문자의 위치 반환
INSTRB 특정 문자의 위치 바이트 크기 반환
LPAD/RPAD CHARACTER CHARACTER 지정 문자열을 입력한 크기만큼 본 문자열의 왼쪽 / 오른쪽부터 채워서 생성된 문자열 리턴
LTRIM/RTRIM 왼쪽 / 오른쪽부터 지정한 문자를 잘라내고 남은 문자 리턴
TRIM 왼쪽 / 오른쪽 / 양쪽부터 지정한 문자를 잘라내고 남은 문자 리턴
SUBSTR 지정한 위치에서 지정한 길이만큼 문자 잘라내서 리턴
SUBSTRB 지정한 위치에서 지정한 바이트만큼 문자를 잘라내서 리턴
LOWER 전달받은 문자 / 문자열을 소문자로 변환하여 리턴
UPPER 전달받은 문자 / 문자열을 대문자로 변환하여 리턴
INITCAP 전달받은 문자 / 문자열의 첫 글자만 대문자로, 나머지는 소문자로 변환하여 리턴
CONCAT 인자로 전달받은 두 개의 문자 / 문자열을 합쳐서 리턴
REPLACE 전달받은 문자열 중에서 지정한 문자를 인자로 전달받은 문자로 변환하여 리턴

 

 

 

     > 문자 처리 함수 | LENGTH

       -> 주어진 컬럼 값 / 문자열의 길이 (문자 개수) 반환

       -> 표현식 : LENGTH(CHAR | STRING)

            -> LENGTH(문자 타입 컬럼 | 문자열)

 

     > 문자 처리 함수 | LENGTHB

       -> 주어진 컬럼 값 / 문자열의 길이 (BYTE) 반환

       -> 표현식 : LENGTHB(CHAR | STRING)

 

 

 

     > 문자 처리 함수 | INSTR

       -> 지정한 위치부터 지정한 숫자 번째로 나타나는 문자의 시작 위치를 반환

       -> 표현식 : INSTR(STRING, STR[, POSITION[, OCCURRENCE]])

            -> STRING : 문자 타입 컬럼 / 문자열

            -> STR : 찾으려는 문자열

            -> POSITION : 찾을 위치 시작 값 (기본 값 1)

                 -> POSITION > 0 : STRING의 시작부터 끝 방향

                 -> POSITION < 0 : STRING의 끝부터 시작 방향

            -> OCCURRENCE : SUBSTRING이 반복될 때 지정하는 빈도(기본 값 1), 음수 사용 불가

 

 

 

 

     > 문자 처리 함수 | LPAD / RPAD

       -> 주어진 컬럼, 문자열에 임의의 문자열을 왼쪽 / 오른쪽에 덧붙여 길이 N개의 문자열을 반환

       -> 표현식 : LPAD(STRING, N[, STR]) / RPAD(STRING, N[, STR])

            -> STRING : 문자 타입 컬럼 / 문자열

            -> N : 반환할 문자(열)의 길이(바이트), 원래 STRING의 길이보다 작다면 N만큼 잘라서 표시한다.

            -> STR : 덧붙이려는 문자(열), 생략 시 공백 문자

좌) LPAD / 우) RPAD
주민등록번호 출력해보기

 

 

     > 문자 처리 함수 | LTRIM / RTRIM

       -> 주어진 컬럼, 문자열의 왼쪽 / 오른쪽에서 지정한 STR에 포함된 모든 문자를 제거한 나머지 반환

       -> 표현식 : LTRIM(STRING, STR) / RTRIM(STRING, STR)

            -> STRING : 문자 타입 컬럼 / 문자열

            -> STR : 제거하려는 문자(열), 생략 시 공백문자 제거가 기본 값

 

 

 

 

     > 문자 처리 함수 | TRIM

       -> 주어진 컬럼, 문자열의 앞 / 뒤 / 양쪽에 있는 지정하는 문자를 제거한 나머지를 반환

       -> 표현식 : TRIM( STRING)

       -> 표현식 : TRIM( CHAR FROM STRING)

       -> 표현식 : TRIM( LEADING | TRAILING | BOTH [CHAR] FROM STRING)

            -> STRING : 문자 타입 컬럼 또는 문자열

            -> CHAR : 제거하려는 문자(열), 생략 시 공백문자

            -> LEADING : TRIM할 CHAR의 위치 지정. 앞(LEADING) / 뒤(TRAILING) / 양쪽(BOTH) 지정 가능 (기본 값은 양 쪽이다.)

 

 

문자 앞 뒤로의 모든 지정 문자 삭제 / BOTH 사용으로 양쪽 값 삭제
앞 문자 삭제 / 뒤 문자 삭제

 

 

     > 문자 처리 함수 | SUBSTR

       -> 컬럼이나 문자열에서 지정한 위치부터 지정한 개수의 문자열을 잘라내어 반환

       -> 표현식 : SUBSTR( STRING, POSITION[, LENGTH])

            -> STRING : 문자 타입 컬럼 또는 문자열

            -> POSITION : 문자열을 잘라낼 위치, 양수면 시작방향에서 지정한 수만큼, 음수면 끝 방향에서 지정한 수만큼의 위치를 의미

            -> LENGTH : 반환할 문자 개수(생략 시 문자열의 끝까지를 의미, 음수면 NULL 리턴해준다.)

 

       -> 공백도 카운팅(LENGTH)에 들어간다.

 

 

 

 

 

     > 문자 처리 함수 | LOWER / UPPER / INITCAP

       -> 컬럼의 문자 혹은 문자열을 소문자 / 대문자 / 첫 글자만 대문자로 변환하여 반환

       -> 표현식 : LOWER(STRING) / UPPER(STRING) / INITCAP(STRING)

            -> STRING : 문자 타입 컬럼 또는 문자열

 

 

     > 문자 처리 함수 | CONCAT

       -> 컬럼의 문자 혹은 문자열을 두 개 전달받아 하나로 합친 후 반환

       -> 표현식 : CONCAT(STRING, STRING)

            -> STRING : 문자 타입 컬럼 또는 문자열

콤마(,)와 연결연산자 사용 비교

 

       -> 여러 개의 문자열 실습

 

 

 

     > 문자 처리 함수 | REPLACE

       -> 컬럼의 문자 혹은 문자열에서 특정 문자(열)을 지정한 문자(열)로 바꾼 후 반환

       -> 표현식 : REPLACE(STRING, STR1, STR2)

            -> STRING : 문자 타입 컬럼 또는 문자열

            -> STR1 : 변경하려고 하는 문자 혹은 문자열

            -> STR2 : 변경하고자 하는 문자 혹은 문자열

 

 

 

 

     > 숫자 처리 함수

구분 입력 값 타입 리턴 값 타입 설명
ABS NUMBER NUMBER 절대 값 리턴
MOD 입력 받은 수를 나눈 나머지 값 반환
ROUND 특정 자릿수에서 반올림
FLOOR 버림 (소수점 아래를 잘라냄)
TRUNC 특정 자릿수에서 잘라냄
CEIL 올림 (소수점 아래에서 올림)

 

 

     > 숫자 처리 함수 | ABS

       -> 인자로 전달 받은 숫자의 절대값 반환

       -> 표현식 : ABS(NUMBER)

            -> NUMBER : 숫자 또는 숫자 데이터 컬럼

 

 

     > 숫자 처리 함수 | MOD

       -> 인자로 전달받은 숫자를 나누어 나머지 반환

       -> 표현식 : MOD(NUMBER, DIVISION)

            -> NUMBER : 숫자 또는 숫자 데이터 컬럼

            -> DIVISION : 나눌 수 혹은 나눌 숫자 데이터 컬럼

 

 

 

 

     > 숫자 처리 함수 | ROUND

       -> 인자로 전달 받은 숫자 혹은 컬럼에서 지정한 위치부터 반올림하여 값 반환

       -> 표현식 : ROUND(NUMBER)

       -> 표현식 : ROUND(NUMBER, POSITION)

            -> NUMBER : 숫자 또는 숫자 데이터 컬럼

            -> POSITION : 반올림할 위치(생략 시 기본값은 0)

좌) 소수점 첫째자리 반올림
소수점 기준 음수일 경우 왼쪽부터 반올림

 

     > 숫자 처리 함수 | CEIL

       -> 인자로 전달 받은 숫자 혹은 컬럼을 올린 후 반환

       -> 표현식 : CEIL(NUMBER)

            -> NUMBER : 숫자 또는 숫자 데이터 컬럼

 

 

 

     > 숫자 처리 함수 | FLOOR

       -> 인자로 전달 받은 숫자 혹은 컬럼에서 소수점 자리의 수를 버림 후 반환

       -> 표현식 : FLOOR(NUMBER)

            -> NUMBER : 숫자 또는 숫자 데이터 컬럼

 

 

 

     > 숫자 처리 함수 | TRUNC

       -> 인자로 전달 받은 숫자 혹은 컬럼에서 지정한 위치부터 소수점 자리의 수를 버리고 반환

       -> 표현식 : TRUNC(NUMBER, POSITION)

            -> NUMBER : 숫자 또는 숫자 데이터 컬럼

            -> POSITION : 버릴 위치(생략 시 기본값은 0)

 

 

 

     > 날짜 처리 함수

구분 입력 값 타입 리턴 값 타입 설명
SYSDATE   DATE 시스템에 저장된 현재 날짜 반환
MONTHS_BETWEEN DATE NUMBER 두 날짜를 전달받아 몇 개월 차이인지 계산하여 반환
ADD_MONTHS DATE DATE 특정 날짜에 개월 수를 더하여 반환
NEXT_DAY 특정 날짜에서 인자로 받은 요일에서 가장 가까운 날짜 반환
LAST_DAY 해당 달의 마지막 날짜 반환
EXTRACT 년, 월, 일 정보를 추출하여 반환

 

 

     > 날짜 처리 함수 | SYSDATE

       -> 시스템에 저장되어 있는 현재 날짜 반환

       -> 표현식 : SYSDATE

 

     > 날짜 처리 함수 | MONTHS_BETWEEN

       -> 인자로 날짜 두 개를 전달받아 개월 수 차이를 숫자 데이터형으로 반환

       -> 표현식 : MONTHS_BETWEEN(DATE1, DATE2)

            -> DATE1 : 기준이 되는 날짜

            -> DATE2 : 개월 수를 구하려는 날짜

 

 

 

     > 날짜 처리 함수 | ADD_MONTHS

       -> 인자로 전달받은 날짜에 인자로 받은 숫자만큼 개월 수를 더하여 특정 날짜 반환

       -> 표현식 : ADD_MONTHS(DATE, NUMBER)

            -> DATE1 : 기준이 되는 날짜

            -> DATE2 : 더하려는 개월 수

 

 

     > 날짜 처리 함수 | NEXT_DAY

       -> 인자로 전달받은 날짜에 인자로 받은 요일이 가장 가까운 날짜 반환

       -> 표현식 : NEXT_DAY (DATE, STRING [OR NUMBER])

            -> DATE : 기준이 되는 날짜

            -> STRING[OR NUMBER] : 구하려는 요일(숫자의 경우 1 : 일요일, 2 : 월요일, ..., 7 : 토요일)

       -> 1 : 일요일 / 2 : 월요일 / 3 : 화요일 / 4 : 수요일 / 5 : 목요일 / 6 : 금요일 / 7 : 토요일

 

       -> 언어 변경을 KOREAN -> AMERICAN으로 변경해주었다.

       -> 언어 변경 후 같은 쿼리문 작성 시 오류가 나지 않는 걸 확인할 수있었다.

       -> 현재 언어가 AMERICAN이기 때문에 한글 입력 시 오류가 발생한다.

 

 

 

     > 날짜 처리 함수 | LAST_DAY

       -> 인자로 전달받은 날짜가 속한 달의 마지막 날짜 반환

       -> 표현식 : LAST_DAY (DATE)

            -> DATE : 기준이 되는 날짜

 

 

 

     > 날짜 처리 함수 | EXTRACT

       -> 년, 월, 일 정보를 추출하여 반환한다.

       -> 표현식 : EXTRACT (YEAR FROM DATE) : 년

       -> 표현식 : EXTRACT (MONTH FROM DATE) : 월

       -> 표현식 : EXTRACT (DAY FROM DATE) : 일

            -> DATE : 기준이 되는 날짜

 

 

     > * 부록 : 날짜 포맷 변경

       -> ALTER SESSION SET NLS_DATE_FORMAT = 원하는 날짜 포맷

 

반응형