본문 바로가기

DB/ORACLE

220824_ORACLE_국비_DAUL TABLE/ 숫자 함수/ 문자 함수/ 날짜 함수

 

<emp테이블에서 사번, 이름, 급여를 출력하되, 이름이 빠른 순서대로 출력>

asc 생략이 가능


DUAL TABLE

  • SYS 사용자가 소유하는 테이블이며 모든 사용자가 사용 가능
  • 한 행으로 결과를 출력하기 위한 테이블(산술 연산 및 가상 컬럼등에 사용)

 

<예제1>

<예제1-1>

 


1. ORACLE 숫자 함수

구분 설명
ABS 절대값 반환
COS
SIN
TAN
- 코사인 값 반환
- 사인 값 반환    
- 탄젠트 값 반환
EXP
LOG
- 지수 값 반환
- 로그값 반환 
FLOOR 소숫점 아래를 잘라냄
POWER POWER(n,t) → n의 t제곱 반환
SIGN n < 0 → -1 반환
n = 0 → 0 반환
n > 0 → 1 반환
ROUND  특정 자릿수 반올림
TRUNC 특정 자릿수 잘라냄
MOD 나머지를 구함
CEIL 반올림

 

 

<ROUND/45.5645를 소수점 세번째 자리에서 반올림>

<ROUND/45.5645를 1의 자리에서 반올림>

<ROUND>

음수는 정수를 반올림

ROUND(숫자값, 자리수) : 기본값은 소수점 첫째자리에서 반올림

 

 

<ABS>

ABS(숫자값) : 절댓값 반환

 

 

<FLOOR>

 

 

<TRUNC>

 

 

<MOD>

MOD(숫자1, 숫자2 ) : 숫자 1을 숫자2로 나눈 나머지값 반환

 

 

<emp테이블에서 사원번호가 홀수인 사원 출력>

 

 

<SIGN함수 사용>

 

 

<CEIL>

CEIL (숫자) : 가장 가까운 큰값으로 반올림되서 반환

 


2. ORACLE 문자 함수

구분 의미
LOWER
UPPER
- 소문자로 변환
- 대문자로 변환
INITCAP 첫글자만 대문자로 변환, 나머지는 소문자로 변환
CONCAT 문자의 값 연결
SUBSTR
SUBSTRB
- 문자를 원하는 곳에서 잘라 추출(문자 단위)     
- 문자를 원하는 곳에서 잘라 추출( 바이트 단위)
LENGTH
LENGTHB
- 문자열 길이 반환                     
- 문자열 길이 반환(바이트 단위)
INSTR
INSTRB
- 특정 문자의 위치 반환                      
- 특정 문자의 위치 반환(바이트 단위)
LPAD(LEFT PADDING)
RPAD(RIGHT PADDING)
입력받은 문자열과 기호를 정렬하여
특정 길이의 문자열로 반환
TRIM 잘라냄
CONVERT CHAR SET 반환
CHR
ASCII
- ASCII Code값 반환               
- ASCII Code값을 문자로 반환
REPLACE 문자열에서 특정 문자열로 변경

 

<UPPER/ LOWER / INITCAP>

 

 

<LENGTH / LENGTHB>

 

 

<INSTR>

맨 처음에 나오는 문자를 찾아서 위치 반환

 

 

<SUBSTR>

SUBSTR(문자열, 시작위치, 길이) : 대상 문자열이나 컬럼의 자료에서 시작위치부터 선택 갯수만큼 문자 추출

※ oracle index 번호는 1부터 시작

 

 

<SUBSTR을 이용한 hiredate구하기>

 

 

<SUBSTR, CONCAT을 이용한 hiredate 구하기>

 

 

<SUBSTRB>

SUBSTRB(문자열, 시작위치, 길이) : 바이트 단위로 자를때 사용

 

 

<INSTR>

INSTR(찾을 문자열, 찾을 문자 값, 찾기를 시작 할 위치,찾을 결과의 순번) : 대소문자를 구분하며 인덱스 번호 반환

 

 

<LPAD / RPAD>

 LPAD(문자열, 총문자 길이, 채움문자)  : 오른쪽 정렬 후 왼쪽에 생긴 빈 공백에 특정 문자를 채움

 RPAD(문자열, 총문자 길이, 채움문자)  : 왼쪽 정렬 후 오른쪽에 생긴 빈 공백에 특정 문자를 채움

 

 

<LTRIM / RTRIM>

LTRIM (문자열, 제거 할 문자열) : 문자열 왼쪽(앞)에  공백문자 삭제

RTRIM (문자열, 제거 할 문자열) : 문자열 오른쪽(뒤에 공백문자 삭제)

 

<TRIM>

trim의 기본값은 공백

TRIM (문자열) : 특정 문자를 잘라내는 함수, 컬럼이나 대상 문자열에서 특정문자가 첫번째나 마지막에 위치해 있으면

                          해당 특정 문자를 잘라낸 후 남은 문자열만 반환

 


<예제>

<emp테이블에서 'smith'이름을 갖는 사원 출력/ 단 'smith'는 그대로 사용할것>

방법1)

방법2)

 

 

<emp테이블에서 ename, job의 첫번째 글자를 대문자로 표현>

 

 

<emp테이블의 사원중 5월에 입사한 사원의 이름, 월급 입사일을 출력>

 

 

<emp테이블의 사원중 이름의 마지막글자가 'S'로 끝나는 사원의 이름, 월급, 직급을 출력>

방법1_LIKE)

방법2_SUBSTR)

 

<emp테이블의 사원중 이름의 마지막글자가 'ES'로 끝나는 사원의 이름, 월급, 직급을 출력>

 

 

<emp테이블의 사원 중 이름의 4번째 글자가 'E'인 사원의 이름, 부서번호, 월급을 출력>

방법1_LIKE)

방법2_SUBSTR)

방법3_INSTR)

 

 

<emp테이블의 ename컬럼에서 이름의 마지막 글자가 'D'인 사원의 이름, 월급, 입사일을 출력>

방법1_LIKE)

방법2_SUBSTR)

방법3_INSTR)


3. DATE 함수 

  • 결과값은 날짜 또는 기간을 얻음, 기간은 주로 일 단위로 계산됨(종종 월 단위도 있음)
  • 날짜 연산
날짜 + 숫자 그 날짜로부터 그 기간만큼 지난 날짜 계산
날짜 - 숫자 그 날짜로부터 그 기간만큼 이전 날짜 계산
날짜 -  날짜 두 날짜 사이의 기간 계산

 

  • 종류
구분 의미
SYSDATE - 현재 날짜 반환 함수                      
- 시스템 현재 날짜를 읽어와서 출력
MONTHS_BETWEEN 두 날짜 사이의 개월수 반환

 

<SYSDATE>

 

<SYSDATE 연산>

 

 

<emp테이블의 사원들의 현재까지의 근무 일자, 근무 년수 출력>

 

 

<1999.01.01부터 하루에 3끼를 먹었다는 가정하에 지금까지 먹은 끼니 계산>

 

 

<emp테이블에서 직원들이 근무한 개월 수 출력>