<emp테이블에서 사번, 이름, 급여를 출력하되, 이름이 빠른 순서대로 출력>
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 (문자열) : 특정 문자를 잘라내는 함수, 컬럼이나 대상 문자열에서 특정문자가 첫번째나 마지막에 위치해 있으면
해당 특정 문자를 잘라낸 후 남은 문자열만 반환
<예제>
<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테이블에서 직원들이 근무한 개월 수 출력>
'DB > ORACLE' 카테고리의 다른 글
220829_ORACLE_국비_JOIN/SUB Query (0) | 2022.08.29 |
---|---|
220826_ORACLE_국비_그룹함수/GROUP BY/HAVING/JOIN (0) | 2022.08.26 |
220825_ORACLE_국비_날짜함수/형 변환 함수/NVL/DECODE/CASE (0) | 2022.08.25 |
220823_ORACLE_국비_Between ~ and/IN, NOT IN/%, _/NULL/Concatenation/DISTINCT/ORDER BY (0) | 2022.08.23 |
220822_ORACLE_국비_데이터타입/ SQL명령문/비교연산자/논리연산자 (0) | 2022.08.22 |