02_1 함수 - 그룹함수, 문자 관련 함수, 숫자 처리 함수
함수 : 컬럼 값을 읽어서 계산한 결과를 리턴한다.
단일행 함수: 컬럼에 기록된 N개의 값을 읽어서 N개의 결과를 리턴한다.
그룹함수 : 컬럼에 기록된 N개의 값을 읽어서 한 개의 결과를 리턴한다.
→SELECT 절에 단일행 함수와 그룹 함수를 함께 사용할 수 없다.
→WHERE절에서는 단일행 함수만 사용가능하다.
그룹함수
SUM (숫자가 기록된 컬럼명) : 합계를 구하여 리턴
AVG(숫자가 기록된 컬럼명) : 평균을 구하여 리턴
MAX(컬럼명) : 컬럼명에서 가장 큰 값을 리턴한다. 모든 타입을 취급함
MIN(컬럼명): 컬럼명에서 가장 작은 값을 리턴한다. 모든 타입을 취급한다.
COUNT(*) : NULL을 포함한 전체 행 개수를 리턴한다
COUNT( * | 컬럼명) : 행의 개수를 헤아려서 리턴한다.
COUNT(컬럼명) : NULL을 제외한 실제 값이 기록된 행 개수를 리턴한다.
COUNT([DISTINCT] 컬럼명) : 중복을 제거한 행 개수를 리턴한다.
문자 관련 함수
LENGTH(’오라클’) → 문자의 길이 : 3
LENGTHB(’오라클’) → 바이트로 가진 크기를 포함한 길이 :9
INSTR(’문자열’ | 컬럼명, ‘문자’, 찾을 위치의 시작 값. [빈도])
SELECT INSTR('AABAACAABBAA', 'B', -1, 2) FROM DUAL;
문자열에서 B를 뒤에서 부터 두 번째 시작 값 : 9
빈도는 필수 x
LPAD / RPAD (컬럼명, N, ‘문자열 ’)
주어진 컬럼 문자열에 임의의 문자열을 덧붙여 길이 N의 문자열로 반환
LPAD는 문자열을 왼쪽에 채우고, RPAD는 오른쪽에 채운다.
N이 컬럼 문자열보다 작은 경우 N길이만큼 잘림.
LTRIM / RTRIM (컬럼OR문자열 , 문자열’)
주어진 컬럼이나 문자열 왼쪽/오른쪽에서 지정한 문자 혹은 문자열을 제거한 나머지를 반환하는 함수이다.
지정된 문자가 없으면 공백을 제거하는 것이고, 지정한 문자열 중 한 문자라도 해당하면 제거한다. 해당하지 않는 문자가 나오면 제거 중단함.
TRIM
주어진 컬럼이나 문자열의 앞/뒤에 지정한 문자를 제거한다
TRIM('Z' FROM 'ZZZGREEDYZZZ') → 모든 Z 제거
TRIM(BOTH 'Z' FROM 'ZZZGREEDYZZZ') → 모든 Z 제거
TRIM(LEADING 'Z' FROM 'ZZZGREEDYZZZ') → 왼쪽 Z 제거
TRIM(TRAILING 'Z' FROM 'ZZZGREEDYZZZ') → 오른쪽 Z 제거
**왼쪽(Left)이 먼저 쓰여서 리드하고, 뒤에 쓰인 오른쪽이 따라간다
SUBSTR
컬럼이나 문자열에서 지정한 위치로부터 지정한 개수의 문자열을 잘라서 리턴하는 함수.
-위치이면 뒤에서부터, 지정한 개수가 없으면 지정 위치부터 끝까지 리턴
날짜 데이터에서도 사용할 수 있다.
함수 중첩 사용 가능
함수 안에서 함수를 사용할 수 있다.
RPAD(SUBSTR(EMP_NO, 1, 7), 14, '*') → 주민번호 뒷자리 *처리
SUBSTRB
바이트 단위로 추출하는 함수
영어는 같은데 한글은 2바이트라 그냥 SUBSTR 보다 2배 숫자 써야 함
잘 안 쓰이는 함수
LOWER / UPPER / TNITCAP : 대소문자 변경해 주는 함수
LOWER( 문자열 | 칼럼) : 소문자로 변경해주는 함수
UPPER(문자열 | 컬럼) : 대문자로 변경해주는 함수
INITCAP(문자열 | 컬럼) : 앞 글자만 대문자로 변경해주는 함수
CONCAT
문자열 혹은 컬럼 두 개를 입력받아 하나로 합친 후 리턴
문자열 || 문자열 과 같다
REPLACE
컬럼 혹은 문자열을 입력받아, 변경하고자 하는 문자열을 변경하려고 하는 문자열로 바꾼 후 리턴
REPLACE('서울시 강남구 역삼동', '역삼동', '삼성동')
⇒ ‘서울시 강남구 삼성동’
숫자 처리 함수
ABS(숫자 | 숫자로 된 컬럼명) : 절댓값 구하는 함수
MOD(숫자|숫자로 된 컬럼명1, 숫자|숫자로 된 컬럼명2)
두 수를 나누어서 나머지를 구하는 함수 1/2
ROUND(숫자|숫자로 된 컬럼명, [위치]) : 반올림
위치 2 → 소수점 셋째 자리에서 반올림, 위치 -2 → 십의 자리에서 반올림
FLOOR(숫자|숫자로 된 컬럼명) : 내림처리 → 정수값 만들기
TRUNC(숫자|숫자로 된 컬럼명, [위치]
내림처리(절삭)하는 함수
위치 지정 안 하면 FLOOR와 같다. 위치를 지정하면 ROUND처럼 처리하지만 올림 없이 절삭한다.
CEIL(숫자| 숫자로 된 컬럼명)
올림 처리 함수 → 반올림 ROUND와 달리 무조건 올림처리한다.