자바 프로그래밍_Day_27_함수(Function)
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 : 덧붙이려는 문자(열), 생략 시 공백 문자
> 문자 처리 함수 | 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) 지정 가능 (기본 값은 양 쪽이다.)
> 문자 처리 함수 | 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 = 원하는 날짜 포맷