본문 바로가기

[2016 - 2019] 학부 정리/DataBase

[DataBase-공부] 6. 함수를 사용해보자

함수 사용하기


(1) 문자함수

함수 

결과 

LOWER(' HELLO World ') 

hello world 

UPPER(' HELLO World ')

HELLO WORLD 

INITCAP(' HELLO World ') 

Hello World 

CONCAT( 'Hello' , 'World') 

HelloWorld 

SUBSTR('HelloWorld', 1, 5

Hello 

LENGTH('HelloWorld')

10 

INSTR('HelloWorld', 'W') 

LPAD(sal, 6, '@') 

@@@800 

RPAD(sal, 6, '@') 

800@@@ 

TRIM('W' From 'WARD') -> 맨앞과 맨뒤만 잘림

ARD

하나의 행으로 확인하고 싶을 때 공용 테이블인 dual table로 확인



(2) 숫자함수

함수 

결과 

ROUND(12.345, 2) -> 반올림

12.35 

TRUNC(12.345, 2) -> 버림

12.34 

MOD(1000, 300)  -> 나눈 나머지

100 

CEIL -> 올림



(3) 날짜함수

① sysdate 

현재 데이터베이스 서버의 날짜와 시간을 반환합니다.


② 날짜의 산술연산

연산 

결과 

설명 

날짜 + 숫자 

날짜 

날짜에 일수를 더합니다. 

날짜 - 숫자 

날짜

날짜에서 일수를 뺍니다. 

날짜 - 날짜 

일수 

한 날짜를 다른 날짜에서 뺍니다. 

날짜 + 숫자/24 

날짜 

날짜에 시간 수를 더합니다. 


select (sysdate-hire_date)/7 as weeks -> (현재 날짜 - 고용된 날짜) / 7 = 지금까지 지나온 주가 반환된다. 

from employees

where department_id = 50;


잠깐!!!!!!!

7로 나누나?? 라고 이해가 가지 않는 분들도 계실텐데요, 그게 나야나..;;

날짜의 산술연산에서 날짜-날짜 = '일' 수가 나옵니다. 즉 몇 일 혹은 몇백일 등이 나오겠지요 거기서 주 단위로 보고 싶다면, 7일씩 나누면 대충 주단위로 나올테고 30정도씩 나눈다면 월 단위로 나오는걸 확인할 수 있습니다. 그렇다면 *24는 시간단위로 나오는것도 이해하시겠죠?


③ 날짜함수

함수 

결과 

MONTHS_BETWEEN(date1, date2)

두 날짜 간의 월 수를 나타냅니다. 

ADD_MONTHS(date, n)

날짜(date)에 월(n)을 추가합니다. 

NEXT_DAY(date, '지정요일(ex.월요일)')

지정된 날짜의 다음날을 반환합니다. 

LAST_DAY(date) 

월의 마지막 날을 반환합니다. 

ROUND (sysdate, 'month')

날짜를 반올림합니다. 

TRUNC (sysdate, 'year')

날짜를 버림합니다.