Ⅰ. 문자함수
1. 대소문자 변환 함수
입력 | 출력 | 설명 |
lower('SQL Course') | sql course | 전부 소문자로. |
upper('SQL Course') | SQL COURSE | 전부 대문자로. |
initcap('SQL Course') | Sql Course | 머릿글자 대문자, 나머지 소문자. |
2. 문자 조작 함수
입력 | 출력 | 설명 |
concat('Hello', 'World') | HelloWorld | 두 파라미터 값 연결. Hello + World. |
substr('HelloWorld', 1, 5) | Hello | 문자열 추출. 1~5번째 글자 표현. |
instr('HelloWorld', 'W') | 6 | 문자 위치 숫자로 표시. W는 6번째. |
length('HelloWorld') | 10 | 문자열 길이를 숫자 값으로 표시. 10자. |
lpad(salary, 10, '$') | $$$$$24000 | 총 10자 되도록 왼쪽부터 $ 채움. |
rpad(salary, 10, '*') | 24000***** | 총 10자 되도록 오른쪽부터 * 채움. |
trim('H' from 'HelloWorld') | elloWorld | 지정 문자가 접두어or접미어일 때 제거. |
reaplace('jack and jue', 'j', 'bl') | black and blue | 특정 문자 대체. j 있는 자리 bl로 바꿈. |
Ⅱ. 숫자함수
1. round
* dual : 연산 위해 가라로 만든 테이블. 실제로는 존재하지 않으며 구문의 구색을 맞추는 용도.
입력 | 출력 | 설명 |
select round(45.923, 1) from dual; |
45.9 | 소수점 아래 첫째 자리까지 나타냄 (소수점 아래 둘째 자리에서 반올림). |
select round(45.923, 0) from dual; |
46 | 일의자리까지 나타냄 (소수점 아래 첫째 자리에서 반올림). |
select round(45.923, -1) from dual; |
50 | 십의자리까지 나타냄 (소수점 위 첫째자리(일의자리)에서 반올림). |
2. trunc
입력 | 출력 | 설명 |
select trunc(34.567, 1) from dual; |
34.5 | 소수점 아래 첫째 자리까지 나타냄 (소수점 아래 둘째 자리 버림). |
select trunc(34.567, 0) from dual; |
34 | 일의자리까지 나타냄 (소수점 아래 첫째 자리 버림). |
select trunc(34.567, -1) from dual; |
30 | 십의자리까지 나타냄 (소수점 위 첫째자리(일의자리) 버림). |
3. mod
입력 | 출력 | 설명 |
select mod(1600, 300) from dual; |
100 | 왼쪽 수/오른쪽 수 후 나머지 출력. (1600을 300으로 나눈 나머지 == 100) |
Ⅲ. 날짜함수
1. sysdate 함수
2. 날짜를 사용한 산술 연산
입력 | 출력 | 설명 |
날짜 + 숫자 | 날짜 | 날짜에 일 수(숫자)를 더한다. |
날짜 - 숫자 | 날짜 | 날짜에서 일 수(숫자)를 뺀다. |
날짜 - 날짜 | 일 수 | 한 날짜를 다른 날짜에서 뺀다. |
날짜 + 숫자/24 | 날짜 | 날짜에 시간(숫자/24) 수를 더한다. |
3. 날짜 조작 함수
입력 | 결과 |
months_between('날짜', '날짜') | 두 날짜 사이 월 수 출력. |
add_months('날짜', 숫자) | 날짜에 월 추가. |
next_day('날짜', '요일 등') | 지정된 날짜 다음날. |
last_day('날짜') | 해당 월의 마지막 날. |
round('날짜', '연도/월 등') | 날짜 반올림. |
trunc('날짜', '연도/월 등') | 날짜 버림(절삭). |
Ⅳ. 연습문제
1. employees 테이블로부터 사원들의 employee_id, last_name, salary,15.5% 인상된 급여(New Salary), 새 급여에서 이전 급여를 뺀 값(Increase)을 출력하는 구문을 작성하시오. (단, 4번째, 5번째 컬럼은 일의 자리에서 반올림하여 정수로 표현하시오.)
2. employees 테이블로부터 사원들의 last_name과 salary를 출력하되 급여를 15자리로 표시하고 왼쪽부터 $ 기호가 채워지도록 지정하시오.
3. employees 테이블로부터 사원들의 last_name과 last_name의 길이를 출력하되 last_name이 'J', 'A', 'M'으로 시작되는 사원만 출력하시오. 또한 last_name을 기준으로 오름차순 정렬해서 출력하시오.
4. employees 테이블로부터 사원들의 last_name과 입사한 개월 수를 출력하는 구문을 작성하시오. 단, 입사한 개월 수를 일의 자리까지 반올림해서 출력하시오.
출처 : 아이티윌 부산교육센터 Oracle Database 12c : 실습가이드북
반응형
'개발(Web) > DB' 카테고리의 다른 글
[Oracle] GROUP BY절과 HAVING절 (0) | 2020.06.30 |
---|---|
[Oracle] 단일 행 함수 (2) (0) | 2020.06.30 |
[Oracle] WHERE(조건문)절과 ORDER BY(정렬)절 (0) | 2020.06.26 |
[Oracle] SELECT구문을 사용한 데이터 검색 (0) | 2020.06.23 |
[Oracle] 터미널 실행하기 (0) | 2020.05.30 |