| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 오라클
- PWA
- 서브쿼리
- maven
- 자바스크립트
- TodayILearned
- TIL
- framework
- js
- mybatis
- Oracle
- tdd
- SpringMVC
- sqldeveloper
- progressive web app
- web
- 자바프로그래밍
- sql
- 프레임워크
- javaprogramming
- 프로그레시브웹앱
- javascript
- JavaScript 내장객체
- CSS
- HTML
- 생활코딩
- 스프링
- 국비지원
- 메이븐
- springaop
- Today
- Total
1cm
자바 프로그래밍_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 = 원하는 날짜 포맷
'국비지원_Java > Java Programming_1' 카테고리의 다른 글
| 자바 프로그래밍_Day_29_GROUP BY & HAVING (0) | 2021.10.06 |
|---|---|
| 자바 프로그래밍_Day_28_함수(Function)2 (0) | 2021.10.06 |
| 자바 프로그래밍_Day_26_SELECT 연산자 (0) | 2021.09.29 |
| 자바 프로그래밍_Day_25_ 오라클 데이터베이스(Oracle Database) (0) | 2021.09.29 |
| 자바 프로그래밍_Day_24_Git 설치 (0) | 2021.09.26 |