SQL문(쿼리문)은 대소문자 구분이 없지만, 데이터는 대소문자 구분이 필수!
함수란?
- 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어
- 오라클 함스의 종류
- 내장함수 -> 기본으로 제공
- 단잉행 함수
- 다중행 함수
- 정의함수 -> 사용자가 필요에 의해 직접 정의
- 내장함수 -> 기본으로 제공
문자함수
- UPEER( ) -> 모두 대문자로 변경
- 사원이름이 scott인 사원 대소문자 상관없이 찾기
SELECT * FROM EMP
WHERE UPPER(ENAME) = UPEER('scott');
- LOWWER( ) -> 모두 소문자로 변경
- INITCAP( ) -> 첫번째 글자만 대문자로 변경
- LENGTH( ) -> 문자열의 길이를 구하는 함수
- SUBSTR(대상, start, [length]) -> 필요한 부분만 추출
- INSTR(대상, 찾으려는 문자, [strat], [~th]) -> 특정 문자의 위치 찾기
- 위치 값을 음수로 사용하면 오른쪽 끝부터 왼쪽으로 검색
- 찾으려는 데이터가 없으면 0을 반환
- REPLACE(대상, target, change) -> 문자를 대치하는 함수
- LPAD, RPAD(대상, length, ['change']) -> 빈공간을 'change'로 채우는 함수(입력안하면 공백)
- CONCAT( ) -> 두 문자를 합치는 함수
- TRIM, LTRIM, RTRIM(대상, [삭제할문자]) -> 특정 문자를 삭제(문자 생략시 공백을 제거)
- TRIM은 데이터를 혹시나 들어 있을지도 모르는 양쪼끝의 공백을 제거할 때 많이 사용
- ex) 유저가 로그인시 실수로 스페이스바를 입력했을 경우
문자함수
- ROUND(대상, [location]) -> 반올림 함수
- 양수 : 해당 숫자자리까지 보임
- 0 : 소수첫째자리에서 반올림
- 음수 : 해당 숫자의 절댓값 자리에서 반올림
- TRUNC(대상, [location]) -> 버림 함수
- CEIL( ) -> 지정 숫자보다 큰 수 중 가장 작은 정수
- FLOOR( ) -> 지정 숫자보다 작은 수 중 큰 정수
- MOD(대상, 나눌숫자) -> 지정함수를 나누고 난 나머지 값
날짜함수
- 연산(일수로 계산됨)
- 날짜 + 숫자 : 가능
- 날짜 - 숫자 : 가능
- 날짜 - 날짜 : 두 날짜의 차이를 계산
- 날짜 + 날짜 : 불가능
- ADD_MONTH(날짜, 숫자) -> 숫자만큼 더함
- MONTH_BETWEEN(날짜, 날짜) -> 두 날짜간의 개월 수 차이를 구함
- NEXT_DAY(날짜, 요일) -> 입력한 요일에서 돌아오는 요일의 날짜를 출력
- LAST_DAY(날짜) -> 해당 달의 마지막 날짜를 반환
- ROUND( )
- 숫자, 위치
- 날짜, 기준
- TRUNC( )
- 숫자, 위치
- 날짜, 기준
형 변환 함수
- TO_CHAR(날짜, '포맷형태', [NLS_DATE_LANGUAGE='])
- 날짜를 문자열로 포맷형태를 변경
- language 설정시 해당 언어에 맞게 출력됨(7월, JULY, 07 ...)
- TO_DATE(문자, '포맷형태')
조건함수
- DECODE( )
SELECT EMPNO, ENAME, JOB, SAL,
DECODE(JOB,
'MANAGER', SAL*1.1,
'SALESMAN', SAL*1.05,
'ANALYST', SAL,
SAL*1.03) AS UPSAL
FROM EMP;
- CASE( )
SELECT EMPNO, ENAME, JOB, SAL,
CASE JOB
WHEN 'MANAGER' THEN SAL*1.1
WHEN 'SALESMAN' THEN SAL*1.05
WHEN 'ANALYST' THEN SAL
ELSE SAL*1.03
END AS UPSAL
FROM EMP;
SELECT EMPNO, ENANE, COMM,
CASE
WHEN COMM IS NULL THEN'해당사항없음'
WHEN COMM=0 THEN '수당없음'
WHEN COMM>0 THEN '수당:' || COMM
END AS COMM_TEXT
FROM EMP;
728x90
반응형
'DataBase > Oracle DB' 카테고리의 다른 글
(Oracle)Merge Into ~~ 사용법 및 예시 (1) | 2023.04.18 |
---|---|
Do ti 오라클 (07. 다중행 함수와 데이터 그룹화) (0) | 2023.03.10 |
Do it 오라클 (05. WHERE절과 연산자) (0) | 2023.03.08 |
Do it 오라클 (04.SELECT문의 기본 형식) (0) | 2023.03.06 |
Do it 오라클 (03. 설치 및 실행) (0) | 2023.03.06 |
댓글