● 함수 사용하기
(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') |
6 |
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') |
날짜를 버림합니다. |
'학부 정리 > DataBase' 카테고리의 다른 글
[DB공부] 8. 집합연산 - 미완성 (0) | 2018.01.07 |
---|---|
[DataBase-공부] 9. 행 복제, 열 복제를 해보자 (0) | 2018.01.02 |
[DataBase-공부] 5. where절을 써서 데이터를 제한해 보자 (0) | 2018.01.01 |
[DataBase-공부] 4. SELECT문을 사용해보자 (0) | 2018.01.01 |
[DataBase-공부] 3. sqldveloper (0) | 2017.12.31 |