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
반응형
'Database > Oracle' 카테고리의 다른 글
Oracle。NVL, DECODE, CASE 함수 (0) | 2017.06.09 |
---|---|
Oracle。형 변환 함수와 오라클 주요 함수 2 (0) | 2017.06.07 |
Oracle。ORDER BY 절과 집합 연산자 (0) | 2017.06.03 |
Oracle。WHERE 절과 연산자 (0) | 2017.06.02 |
Oracle。기본 사용법 (0) | 2017.06.01 |