본문 바로가기

Database/Oracle

Oracle。DUAL 테이블과 오라클 주요 함수 1

728x90
반응형

1. DUAL 테이블

DUAL 테이블은 DUMMY 테이블로 쿼리문의 수행 결과가 하나의 로우로 출력되도록 구성

 

SELECT SYSDATE
 FROM DUAL;

 

 

2. 숫자 함수

 

구분  설명
ABS  절대값을 구한다.
COS  COSINE 값을 반환한다.
EXP  e(2.71828183...)의 n승을 반환한다.
FLOOR  소수점 아래를 잘라낸다(버림).
POWER  POWER(m, n) m의 n승을 반환한다.
SIGN  SIGN (n) n<0이면 -1, n=0이면 0, n>0이면 1을 반환한다.
SIN  SINE 값을 반환한다.
TAN  TANGENT 값을 반환한다.
ROUND  특정 자릿수에서 반올림한다.
LOG  LOG 값을 반환한다.
TRUNC  특정 자릿수에서 잘라낸다(버림).
MOD  입력 받은 수를 나눈 나머지 값을 반환한다.

 

# ROUND 함수

ROUND(대상, 자릿수)

 

SELECT ROUND(34.5678) // 소수점 이하 반올림
ROUND(34.5678, 2) // 소수점 이하 두 번째 자리에서 반올림
ROUND(34.5678, -1) // 일의 자리에서 반올림
 FROM DUAL;

 

# TRUNC 함수

 

SELECT TRUNC(34.5678, 2) // 소수점 이하 두 번째 자리에서 잘라내기
TRUNC(34.5678, -1) // 일의 자리에서 잘라내기
TRUNC(34.5678) // 소수점 이하 잘라내기
 FROM DUAL;

 

# MOD 함수

 

SELECT MOD(23, 2) //  23을 2로 나눈 나머지
 FROM DUAL;

 

 

3. 문자 처리 함수

# 대소문자 변환 함수

 

SELECT 'Welcome to Oracle'
UPPER('Welcome to Oracle'), // 입력한 문자값을 모두 대문자로 변환
LOWER('Welcome to Oracle'), // 입력한 문자열을 모두 소문자로 변환
INITCAP('WELCOME TO ORACLE') // 입력한 문자열의 이니셜만 대문자로 변환
 FROM DUAL;

 

# 문자 길이를 구하는 함수

 

SELECT LENGTH('Oracle'), LENGTH('오라클'), // 문자의 길이를 반환(한글 1Byte)
LENGTHB('Oracle'), LENGTHB('오라클') // 문자의 길이를 반환(한글 2Byte)
 FROM DUAL;

 

# 문자 조작 함수

 

구분 설명
CONCAT  문자의 값을 연결한다.
SUBSTR  문자를 잘라 추출한다(한글 1Byte).
SUBSTRB  문자를 잘라 추출한다(한글 2Byte).
INSTR  특정 문자의 위치 값을 반환한다(한글 1Byte).
INSTRB  특정 문자의 위치 값을 반환한다(한글 2Byte).
LPAD, RPAD  입력 받은 문자열과 기호를 정렬하여 특정 길이의 문자열 반환

 

# SUBSTR 함수

SUBSTR(대상, 시작위치, 추출할 개수)

 

SELECT SUBSTR('Welcome to Oracle', 4, 2) // 문자열의 4번째부터 2글자 추출
SUBSTR('Welcome to Oracle', -4, 2) // 문자열의 뒤쪽 4변째부터 2글자 추출
 FROM DUAL;

 

# SUBSTRB 함수

문자의 개수가 아닌 그 문자가 메모리에 저장되는 바이트 수 조회

영문 한 글자는 메모리에 1바이트로 저장되기 때문에 SUBSTR 함수와 SUBSTRB 함수의 결과가 동일

 

SELECT SUBSTR('웰컴투오라클', 4, 3), // '오라클'
SUBSTRB('웰컴투오라클', 4, 3) // '컴' SUBSTRB의 한글 한 글자는 3바이트를 차지하기 때문에 웰(1,2,3)컴(4,5,6)으로 컴(4)부터 3바이트 추출
 FROM DUAL;

 

# INSTR 함수

INSTR(대상, 찾을 글자, 시작 위치, 몇 번째 발견)

 

SELECT INSTR('WELCOME TO ORACLE', 'C'), // 문자열에서 C의 위치 찾기(시작 위치, 몇 번째 발견 생략 시 모두 1로 간주)
INSTR('WELCOME TO ORACLE', 'C', 6, 1) // 문자열의 6번째부터 첫 번째로 발견되는 C의 위치 찾기
 FROM DUAL;

 

# INSTRB 함수

바이트 수를 기준으로 문자의 위치 조회

 

SELECT INSTR('데이터베이스', '이', 4, 1), 
INSTRB('데이터베이스', '이', 4, 1) // 한글 한 글자를 3바이트로 보기 때문에 데(1,2,3)이(4,5,6)에서 이(4) 위치에서 문자 1개('이') 위치 찾기
 FROM DUAL;

 

# LPAD/RPAD 함수

LPAD는 컬럼이나 대상 문자열을 명시된 자릿수의 오른쪽에 나타내고, 남은 왼쪽자리를 특정 기호로 채움

RPAD 또한 명시된 자릿수에서 왼쪽에 나타내고, 남은 오른쪽 자리를 특정 기호로 채움

 

SELECT LPAD('Oracle', 10, '#'), // ####Oracle
RPAD('Oracle', 10, '#') // Oracle####
 FROM DUAL;
728x90
반응형