거꾸로 바라본 세상
Published 2016. 3. 17. 12:14
[Oracle] 기본 함수 Database/Oracle
반응형

1. 함수의 기능 


- 함수는 SQL의 매우 강력한 기능이며 다음 작업을 수행하는데 함수를 사용할 수 있다.

1)  데이터에 대한 계산 수행

2) 개별 데이터 항목 수정

3) 행 그룹에 대한 출력 조작

4) 표시할 날짜 및 숫자의 형식 지정

 

SQL 함수는 단일 행 함수와 여러행 함수의 두 가지 유형으로 이루어져 있다.


함수 - 단일 행 함수 (행당 하나의 결과를 반환)

     - 여러 행 함수 (행 집합당 하나의 결과를 반환)



1-1. 단일 행 함수의 종류


단일 행 함수 : 문자함수 숫자함수 날짜함수, 변환함수(묵시적 데이터 변환, 명시적 데이터 변환), 일반함수 


단일 행 함수 

 문자함수

숫자함수

날짜 함수 

변환 함수 

 일반함수

 묵시적 데이터 

변환

명시적 데이터

변환 


- 단일 행 함수는 데이터 항목을 조작하구 인수를 받아들이고 하나의 값을 변환한다.

- 단일 행 함수는 반환되는 각 행에서 실행되고 행 당 하나의 결과를 반환한다.

- 열이나 표현식을 인수로 받아들일 수 있다.


(1) 문자함수


- INITCAP() 함수

 : 영어에서 첫 글자만 대문자로 출력하고 나머지는 전부 소문자로 출력하는 함수이다.


사용법 

INITCAP(문자열 또는 컬럼명) 


EX)

SELECT ENAME, INITCAP(ENAME)

FROM EMP;


- LOWER(), UPPER()함수

 : LOWER()함수는 입력되는 값을 전부 소문자로 변경하는 함수이고, UPPER()함수는 입력되는 값을 전부 대문자로 변경하는 함수이다.


사용법

LOWER(문자열 또는 컬럼명) 

UPPER(문자열 또는 컬럼명)


EX)

SELECT ENAME, LOWER(ENAME), UPPER(ENAME)

FROM EMP;



- SUBSTR() 함수

 : 주어진 문자열에서 특정길이의 문자만 골라내는 함수이다.


사용법

SUBSTR('문자열' 또는 컬럼명 , 시작위치, 골라낼 글자 수)


EX)

SELECT ENAME, SUBSTR(ENAME,1,2)

FROM EMP;


- SUBSTRB() 함수

 : SUBSTR()함수와 동일하며 차이점은 추출할 자리수가 아니라 추출할 Byte수를 지정한다. (한글을 사용할 때 많이 씀)


사용법

SUBSTRB('문자열' 또는 컬럼명, 시작위치, Byte 수)


EX)

SELECT ENAME, SUBSTR(ENAME,1,2), SUBSTRB(ENAME,1,2)

FROM EMP;


- INSTR() 함수

 : 주어진 문자열이나 컬럼에서 특정 글자의 위치를 찾는 함수


사용법

INSTR('문자열' 또는 컬럼, 찾는 글자, 시작위치, 몇 번째인지(기본값 1))


EX)

SELECT HIREDATE, INSTR(HIREDATE,'/',1,2)

FROM EMP;


- LPAD() , RPAD()함수

 : LPAD() 함수는 왼쪽 공백에 특별한 문자로 채우는 함수이고, RPAD()함수는 오른쪽 공백에 특별한 문자로 채우는 것이다.



사용법

LPAD('문자열 또는 컬럼명, 자리수, '채울문자');

RPAD('문자열 또는 컬럼명, 자리수, '채울문자');


EX)

SELECT LPAD(ENAME,10,'*'), RPAD(ENAME,10,'*')

FROM EMP;


- REPLACE() 함수

 : 주어진 첫 번째 문자열이나 컬럼에서 문자1을 문자2로 바꾸는 함수이다.


사용법

REPLACE('문자열' 또는 컬럼명, '문자1' ,'문자2');


EX)

SELECT REPLACE(ENAME, SUBSTR(ENAME,2,2),'***')

FROM EMP;



(2) 숫자함수


- ROUND(), TRUNC() 함수

 : ROUND()함수는 반올림하는 함수고, TRUNC()함수는 자리수를 버리는 함수이다.


사용법

ROUND(숫자, 자리수)

TRUNC(숫자, 자리수)


EX)

SELECT ROUND(3.141592, 2) AS "ROUND" , TRUNC(3.141592, 4) AS "TRUNC"

FROM EMP;


- MOD(), CEIL(), FLOOR() 함수

 : MOD() 함수는 나머지 값을 구하는 함수

 : CEIL() 함수는 주어진 숫자와 가장 가까운 큰 정수를 구하는 함수

 : FLOOR() 함수는 주어진 숫자와 가장 가까운 작은 정수를 구하는 함수



사용법

MOD(값 OR 컬럼명, 나누는 수)

CEIL(값 OR 컬럼명)

FLOOR(값 OR 컬럼명)


SELECT MOD(10,3) AS "MOD", CEIL(2.251) AS "CEIL", FLOOR(2.651) AS "FLOOR"

 FROM EMP;


(3) 날짜함수


- SYSDATE 함수

 : 현재의 날짜와 시간을 출력해주는 함수이므로 오라클은 OS로부터 시간을 가져오므로 OS운영체제의 시간을 변경하면 DB의 시간도 바뀜


사용법

EX) 

SELECT SYSDATE

 FROM EMP;


- MONTHS_BETWEEN 함수

 : 두 날짜를 입력 받아 두 날짜 사이의 개월 수를 출력하는 함수


사용법

MOONTHS_BEETWEEN(현재날짜(SYSDATE, 컬럼명 OR  등록 날짜) 


EX)

SELECT SYSDATE, FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE))

 FROM EMP;


(4) 데이터 형 변환 함수


- TO_CHAR() 함수

 :  숫자형을 문자형으로 변환하거나 날짜를 문자로 변환하는 함수


사용법

TO_CHAR(컬럼명,숫자,날짜, '원하는 모양')


EX)

날짜를 년으로 표시

SELECT TO_CHAR(SYSDATE, 'YYYY')

FROM EMP;

숫자에 달러 표시

SELECT TO_CHAR(6000, '$9,999')

FROM EMP;


-TO_NUMER() 함수

 : 문자열로된 숫자를 정수형 숫자로 바꾸어 주는 함수


사용법

TO_NUMBER('숫자처럼 생긴 문자')


EX)

SELECT TO_NUMBER('3.1459')

FROM EMP;


- TO_DATE() 함수

 : 날짜형식으로된 문자를 날짜타입으로 바꾸어주는 함수


사용법

TO_DATE('날자형식의 문자')


EX)

SELECT TO_DATE('2015/12/25')

FROM EMP;




반응형
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!