728x90
오라클 함수 총정리
728x90
1. DUAL 테이블
▶DUAL 테이블?
자체적으로 만들어진 임시 테이블.
연산 미리 해보며 결과 간단하게 조회해 보기 위해 만들어진 컬럼으로, 길이는 1
SELECT * FROM DUAL;
2. 숫자 함수
1. ABS: 절대값
SELECT -10, abs(-10) FROM DUAL;
→ 값 : 10
2. FLOOR: 소수점 아래 버림
SELECT 34.5678, floor(34.5678) FROM DUAL;
→ 값: 34
3. ROUND: 특정자릿수 반올림
SELECT 34.5678, round(34,5678) FROM DUAL;
SELECT 34.5678, round(34,5678, -1) FROM DUAL;
→ 값: 35
→ 값: 30
4.TRUNC: 특정자릿수 버림
SELECT trunc(34.5678,2)FROM DUAL;
→ 값: 34.56
5.MOD: 입력받은 수 나눈 나머지값
SELECT mod(27,2) FROM DUAL;
→ 값: 1
3. 문자 처리 함수
1. SUBSTR: 문자 추출
SUBSTR(대상, 시작위치, 추출할 개수)
SELECT SUBSTR('Welcome to Oracle',4,3) FROM DUAL;
→ 4번째 자리부터 3개 추출, 값: com
2.LENGTH: 데이터 길이 추출
SELECT LENGTH('오라클') FROM DUAL;
→ 값: 3
3.UPPER / LOWER : 대문자 <-> 소문자
SELECT 'welcome', upper('welcome') FROM DUAL;
→ 값: WELCOME
4.REPLACE : 문자열에서 특정문자 변경
5.LPAD / RPAD : 특정문자 반복 + 문자
6.TRIM : 특정문자기준 제거
7.LTRIM / RTRIM : 문자열 공백 제거
4. 날짜 함수
1. SYSDATE
: 현재날짜 반환, 서버시간
▷sysdate -1: 어제
▷sysdate +1: 내일
SELECT SYSDATE FROM DUAL;
2. ROUND
: 받은 날짜를 특정기준으로 반올림
3. TRUNC
: 받은 날짜를 특정기준으로 버림
5. 형 변환 함수
▶숫자, 문자, 날짜 간 데이터 변환
1. TO_CHAR: 날짜, 숫자형 → 문자형
년도를 2자리(YY)로 출력하고 월은 문자(MON)로 표시하고 요일을 약어(DY)로 표시
SELECT HIREDATE, TO_CHAR(HIREDATE, 'YY/MON/DD DY') FROM EMP;
** TO_CHAR (sal,'L999,999') from emp;
: 천단위마다 콤마 출력, L은 통화단위
2. TO_DATE: 문자형 → 날짜형
숫자형태인 20040108을 날짜형으로 변환
SELECT
ENAME,HIREDATE
FROM EMP
WHERE HIREDATE =TO_DATE('20040108','YYYYMMDD');
** 올해 며칠이 지났는지?
SELECT
TRUNC (SYSDATE- TO_DATE('2023/01/01'.'YYYY/MM/DD'))
FROM DUAL;
3. TO_NUMBER: 문자형 → 숫자형
99,999(천 원 단위 콤마포함)의 형식으로 문자를 숫자로 변경함
SELECT TO_NUMBER ('20,000', '99,999')
6. DECODE 함수 (자바 switch문)
DECODE(표현식, 조건 1, 결과 1, 조건 2, 결과 2...)
▷부서번호에 해당되는 부서명 구하기
SELECT
DEPTNO,ENAME,DECODE(DEPTNO,10,'ACCOUNTING',20,'RESEARCH',30,'SALES','ETC')
FROM EMP;
7. CASE 함수 (자바 if문)
CASE 표현식 WHEN 조건 1 THEN 결과 1... ELSE 결과 N END
*end 반드시 입력!
▷ 부서번호에 해당되는 부서명 구하기
SELECT
ENAME, DEPTNO,
CASE
WHEN DEPTNO=10 THEN 'accounting'
WHEN DEPTNO=20 THEN 'research'
WHEN DEPTNO=30 THEN 'sales'
END
FROM EMP;
8. NVL 함수 : null을 0 또는 다른 값으로 변환
NVL(컬럼명,0);
300x250
'CODING > 🐬MySQL' 카테고리의 다른 글
[MySQL] 특정 컬럼 속한 테이블 찾기 (0) | 2024.07.25 |
---|---|
[MySQL] 계정 생성 및 권한 부여하기 (0) | 2024.01.31 |
[MySQL] SQL 중복 값, 중복 개수 찾기 (GROUP BY, HAVING) (0) | 2023.10.13 |
[MySQL] MysqlDataTruncation 에러 해결하기 (0) | 2023.09.19 |
[MySQL] DATE_FORMAT 함수 사용하기 (0) | 2023.08.17 |