Oracle

ORACLE 함수

임혁진 2023. 12. 11. 17:39

목차

- 문자 조작 함수

- 숫자 함수

- 날짜 함수

- 변환 함수

- 집합 연산자

- 분석 함수

 

함수의 주요 사용처

• 데이터 계산 수행

• 개별적인 데이터 항목 수정

• 행의 그룹에 대해 결과 조작

• 출력을 위한 날짜와 숫자 형식 설정

• 열의 데이터타입 변환

 

 

함수의 종류

-단일 행 함수

-다중 행 함수

 

 

단일 행 함수

• 데이터 값을 조작합니다.

• 인수(argument)를 받고 하나의 결과를 리턴합니다.

• 리턴될 각각의 행에 적용됩니다.

• 행별로 하나의 결과를 리턴합니다.

• 데이터타입을 수정할 수 있습니다.

• 중첩(nested)될 수 있습니다.

 

-문자 함수는 문자 입력을 받고 문자와 숫자 값을 모두 리턴할 수 있다.

-숫자 함수는 숫자 입력을 받고 숫자를 리턴한다.

-날짜 함수는 날짜 데이터입의 값에 대해 수행한다.

숫자를 리턴하는 MONTH_BETWEEN 함수를 제외한 모든 날짜 함수는 날짜 데이터 값을 리턴한다. 

-변환 함수는 어떤 데이터타입의 값을 다른 데이터타입의 값으로 변환한다.

 

-그 외 함수는 NVL,NVL2,LNNVL,NULLIF,COALSECE,DECODE 등이 있다.

 

문자 조작함수

 

-initcap , lower , upper , length , lengthb , concat , substr , substrb , instr , instrb , lpad , rpad , ltrim , trim , replace 

 

 

 

문자열 조작 실전문제(실습)

https://ohj9575.tistory.com/38

 

 

 

 

숫자  함수

 

ROUND , TRUNC , ABS , SIGN , CEIL , FLOOR , REMAINDER , POWER , SQRT , SIN,COS,TAN , SINH , COSH ,TANH , EXP , LN , LOG , MOD 

 

ROUND

 

 

TRUNC 

 

 

날짜 함수

SYSDATE 

-현재 날짜를 반환하는 함수

 

SYSTIMESTAMP

-현재 날짜와 시간을 반환하는 함수

 

 

-날짜 연산

날짜 타입도 연산이 된다.

 

변환 함수 *

항상 문자가 중심이다.

 

TO_CHAR ,TO_NUMBER , TO_DATE 

 

예시를 잘 기억해 놓자.

예시-

숫자를 문자로 변환

주어진 숫자로 표현할 수 없으면 모두 #로 출력

 

 

 

문자를 숫자로 변환하기

문자를 날짜로 변환하기

 

NVL

 

NULL 값을 실제 값으로 변환하기 위해서 NVL함수를 사용한다 (날짜 ,문자 , 숫자 사용가능)

*EXP 1 , EXP2 타입은 동일해야한다

NVL2

EXP1의 값이 NULL이 아닐 경우에는 EXP2 의 값을 반환 NULL일 경우에는 EXP3의 값을 반환

EXP1과 EXP2,EXP3의 데이터타입은 달라도 된다. 

 

DECODE

- > IF-THEN -ELSE 구문과 유사한 방법으로 표현식을 해독

- EXP 를 해독한 후 각각의 SERCHN에 대한 비교를 하고 SERCH N 과 같으면 RESULTN 을 반환

- 기본값이 생략되면 검색값(SERCHN)이 결과 값(RESULTN)과 일치하지 않는 곳에 NULL값이 반환 

 

CASE ~ WHEN ~THEN

-자바의 IF-ELSE 나 SWITCH -CASE 문과 같은 기능을 한다

-CASE 절 뒤에 COLUMN이나 EXP(표현식)가 있을 경우 WHEN 절에는 값이 온다

-CASE 절 뒤에 아무것도 없을 경우 WHEN 절에는 조건식이 온다 

 

변형함수 ,조건확인 실습

https://ohj9575.tistory.com/38

 

 

집합연산자

UNION -합집합(중복X)

UNIONALL-합집합(중복O)

INTERSECT-교집합

MINUS-차집합

 

 

분석함수 -RANK ,DENSE_RANK , ROW_NUMBER

RANK - 해당 값에 대한 순위를 결정한다 (중복순위를 계산 EX 2등이 2명이면 다음은 4등)

DENSE_RANK - 해당 값에 대한 우선순위를 결정(중복순위를 계산X EX 2등이 2명이어도 다음은 3등)

ROW_NUMBER - 조건을 만족하는 모든 행 번호를 제공 ==일련번호를 생성

 

 

 

잘 쓰지않는 함수

CUME_DIST -최댓값 1을 기준으로 분산된 값을 제공한다.

PERCENT_RANK - 최댓값 1을 기준으로 백분율을 제공한다.

 

RATIO-TO_PEPORT - 해당 컬럼값의 백분율을 소수점으로 제공