Today I Learned-12
SQL - 2
- 오라클 내장 함수
문자 / 숫자 / 날짜 / 형 변환 등등
오라클 함수
- 내장 함수(built-in function)
- 단일행 함수: 입력이 하나 -> 출력이 하나
- 다중행 함수: 입력 n개의 값 -> 출력 n개의 값
- 사용자 정의 함수(user-defined function)
오라클 내장 함수 - 1. 문자 함수( 문자데이터를 가공)
- UPPER: 대문자로 변환
- LOWER: 소문자로 변환
- INITCAP: 첫 글자만 대문자, 뒤는 소문자로
대소문자 여부와 상관없이, 검색 단어와 일치하는 문자열 데이터 찾을 수 있음!
- LENGTH: 문자열 길이를 구할 수 있음
- LENGTHB: 문자열 길이를 ‘byte’ 단위로 출력
참고! ‘DUAL;’ = 임시로 사용하는 dummy 테이블
- SUBSTR: 문자열 일부 추출
SUBSTR(문자열 데이터, 시작위치, 추출길이)
: 시작위치부터 지정길이만큼 추출SUBSTR(문자열 데이터, 시작위치)
: 시작위치부터 문자열데이터 끝까지 추출
- INSTR: 문자열 데이터 내 특정 문자 위치 찾기
INSTR( [대상 문자열], [찾으려는 문자], [검색 시작할 위치], [시작 위치에서 몇 번째인지 지정] )
- REPLACE: 특정 문자를 다른 문자로 대체
REPLACE( [문자열 데이터or열 이름], [찾는 문자], [대체할 문자] )
참고! 대체할 문자 비워두면, 찾은 문자들 삭제 처리
- LPAD, RPAD: 데이터의 빈 공간을 특정 문자로 채움
LPAD/RPAD( [문자열 데이터 or 열이름], [데이터 자릿수], [빈 공간 채울 문자] )
- CONCAT: 두 문자열 데이터를 합침
CONCAT(문자열데이터or열이름1, 문자열데이터or열이름2)
CONCAT(문자열데이터or열이름1, CONCAT(' : ', 문자열데이터or열이름2)
- TRIM, LTRIM, RTRIM: 특정 문자를 삭제
- 옵션: Leading(왼쪽 끝부터), Trailing(오른쪽 끝부터), Both(양쪽 끝부터)
- 참고! 문자열에 공백 있다면, 삭제할 문자 지정해도 공백만 삭제됨!
오라클 내장 함수 - 2. 숫자 함수( 숫자데이터를 연산, 수치 조정)
숫자함수 | 내용 |
---|---|
ROUND | 반올림 |
TRUNC | 자릿수 버림 |
CEIL | 보다 큰, 첫 번째 정수 |
FLOOR | 보다 작은, 첫 번째 정수 |
MOD | 나눈 뒤 나머지값 |
ROUND([숫자(필수)], [반올림 위치(선택)])
위치 선택 안할 시, 소수점 첫 번째 자리에서 반올림
TRUNC([숫자(필수)], [버림 위치(선택)])
위치 선택 안할 시, 소수점 첫 번째 자리에서 버림
CEIL/FLOOR([숫자(필수)])
MOD([나눠질 숫자(필수)], [나눌 숫자(필수)])
오라클 내장 함수 - 3. 날짜 함수( 날짜 데이터를 연산)
데이터 | 출력 |
---|---|
날짜데이터 + 숫자 | : 더한 숫자만큼 이후 날짜 출력 |
날짜데이터 - 숫자 | : 더한 숫자만큼 이전 날짜 출력 |
날짜데이터 - 날짜데이터 | : 두 날짜 간, 일수 차이 |
날짜데이터 + 날짜데이터 | : 연산 불가!! |
- SYSDATE
현재 날짜 출력
- ADD_MONTHS( [날짜], [더할 개월 수] )
입력 숫자만큼의 개월 수를 더한 날짜 출력
- MONTHS_BETWEEN( [날짜1], [날짜2] )
두 날짜 간의 개월 수 차이를 출력
- NEXT_DAY( [날짜], [요일 문자] )
다가오는 특정 요일 출력
- LAST_DAY( [날짜(필수)] )
그 달의 마지막 요일 출력
- ROUND/TRUNC 날짜 데이터에 활용
- ROUND( [날짜], [반올림 기준 포맷] )
- TRUNC( [날짜], [버림 기준 포맷] )
- 날짜 기준 포맷 종류 꽤 많음(CC, YYYY, DDD 등), 날짜 데이터에도 ROUND, TRUNC 적용 가능하다는 점만 알아두도록
오라클 내장 함수 - 4. 형 변환 함수 (자료형을 변환)
함수 | 내용 |
---|---|
TO_CHAR | 숫자/날짜 데이터를 문자 데이터로 변환 |
TO_NUMBER | 문자 데이터를 숫자 데이터로 변환 |
TO_DATE | 문자 데이터를 날짜 데이터로 변환 |
TO_CHAR( [날짜 데이터], '[출력 원하는 문자형태]' )
TO_NUMBER( '[문자열 데이터]', '[인식될 숫자형태]' )
TO_DATE( '[문자열 데이터]', '[인식될 날짜형태]' )
오라클 내장 함수 - 5. NULL 처리 함수(NVL / NVL2)
- NULL이란? 빈 공간(spaceX)
- 문법
NVL([null 여부 검사할 데이터/열], [앞 데이터=null일 경우 반환할 값])
: 입력 데이터가 null이면 그대로 // null이 아니면 지정한 값 반환
NVL2([null 여부 검사할 데이터/열], [앞 데이터 != null일 경우 반환할 값], [앞 데이터 = null일 경우 반환할 값] )
: null 여부에 따라 각각 다른 값 지정, 반환
오라클 내장 함수 - 6. DECODE함수와 CASE문
- 상황에 따라 다른 데이터를 반환
- DECODE함수 문법
DECODE( [검사 대상이 될 데이터or열, 연산or함수 결과],
[조건1], [데이터=조건1 의 경우 반환할 결과 ],
[조건2], [데이터=조건2 의 경우 반환할 결과 ],
… …
[조건n], [데이터=조건n 의 경우 반환할 결과 ],
[데이터!=위 모든 조건.. 의 경우 반환할 결과] ) - CASE문 문법
CASE [검사 대상이 될 데이터or열, 연산or함수 결과]
WHEN [조건1] THEN [조건1의 결과값=True 일 경우 반환할 결과]
WHEN [조건2] THEN [조건2의 결과값=True 일 경우 반환할 결과]
… …
WHEN [조건n] THEN [조건n의 결과값=True 일 경우 반환할 결과]
ELSE [위 모든 조건과 일치하지 않을 때 반환할 결과]
END
기타(팁)
- SQL Developer 워크시트에서, ‘DATE 표시 포맷’ 변경 가능 <
다음 강의 준비
- 센터 내 자리에 깔아놓은 VM 폴더 복사, 집에도 설치하기
nice!!!!