/*
# dual 테이블
- 연습용 테이블
- 하나의 행만 가지고 있어서 계산 해볼 때 편리하게 사용할 수 있다
*/
SELECT 123 + 456 FROM employees;
SELECT 123 + 456 FROM dual;
--abs(n) : 절대 값
SELECT abs(-1234) FROM dual;
SELECT abs(1234) FROM dual;
--floor(f) :
SELECT floor(1234.1234) FROM dual;
--ceil(f) : 소수점 아래 올림
SELECT ceil(1234.1111) FROM dual;
-- round(f) : 반올림
SELECT round(1234.567) FROM dual;
SELECT round(1234.456) FROM dual;
-- mod(n,m) : 나머지 연산
SELECT mod(56, 24) FROM dual;
SELECT mod(13, 10) FROM dual;
-- sysdate : 현재시간
SELECT sysdate FROM dual;
-- TO_CHAR() : 다른 타입을 문자 타입으로 변환하는 함수
SELECT to_char(1234) FROM dual;
SELECT to_char(sys date, ‘HH24:mi:SS’) FROM dual;
SELECT to_char(sys date, ‘HH:mi:SS’) FROM dual;
SELECT to_char(sys date, ‘YYYY/MM/DD HH24:mi:SS’) FROM dual;
# 숫자를 문자로 변환할 때의 포맷
1. 9 = 빈 자리를 공백으로 채움
2. 0 = 빈 자리를 0으로 채움
SELECT to_char(100, '9999999999') FROM dual; (9999안에 , 도 찍을 수 있음)
SELECT to_char(100, '0000000000') FROM dual;
SELECT to_char(100, '9,999,999,999L') FROM dual; L도 넣을수 있음
SELECT to_char(100, '9,999,999,999') || '원' FROM dual; 이어서 붙일 수 있음
-- trunc(value, n) : 지정한 자리 값 미만을 잘라낸다
SELECT trunc(123456.123, 2) FROM dual;
SELECT trunc(123456.123, -2) FROM dual;
SELECT trunc(123456.123, -5) FROM dual;
-- 날짜 타입도 지정한 자리값 미만을 잘라낸다
SELECT trunc(sysdate, 'year') FROM dual;
SELECT trunc(sysdate, 'month') FROM dual;
SELECT trunc(sysdate, 'day') FROM dual; -- 한 주의 시작을 일요일로 잡기때문에 해당 일의 일요일의 값을 가져온다
-- substr(value, start, length) : 문자열 자르기
-- # 오라클은 1번이 첫 번째 인덱스다
SELECT substr('Hello, nice to meet y', 3, 9) FROM dual;
-- # 숫자를 하나만 넣으면 해당 숫자부터 맨 뒤까지 자른다
SELECT substr('Hello, nice to meet y', 5) FROM dual;
-- lpad (value, length, str) : 왼쪽에 원하는 값을 원하는 길이만큼 채운다
-- road (value, length, str) : 오른쪽에 원하는 값을 원하는 길이만큼 채운다
SELECT lpad('coffee', '30', '#') FROM dual;
SELECT rpad('coffee', '30', '!@#') FROM dual;
-- ltrim(value, str) : 왼쪽의 제거하고 싶은 문자열을 제거한다
-- rtrim(value, str) : 오른쪽의 제거하고 싶은 문자열을 제거한다
-- trim(str from value) : 양쪽의 제거하고 싶은 문자열을 모두 제거한다
SELECT ltrim('!@#!@#!@#!@#water', '!@#') FROM dual;
SELECT rtrim('coke@@@@' , '@@@@') FROM dual;
SELECT trim('@' FROM '@@@@coke@@@@') FROM dual;
-- 날짜 타입 연산
SELECT sysdate AS 오늘, sysdate+1 AS 내일, sysdate-1 AS 어제 FROM dual;
-- 날짜 타입 연산의 기본 단위는 일이다
SELECT last_name, floor(sysdate - hire_date ) || '일' AS 근무일 FROM employees;
-- 개월수로 보고싶으면 months_between(date, sub_date)을 사용해야 한다
SELECT last_name, months_between(sysdate, hire_date) || '개월' AS 근무개월 FROM employees;
-- 몇 년이 흘렀는지 구해보기
SELECT last_name, floor(months_between (sysdate, hire_date) / 12 ) ||
'년' AS 근무년 FROM employees;
-- next_day(date, day) : 해당 날짜를 기준으로 다음 요일을 찾는다
SELECT next_day(sysdate, '화요일' ) FROM dual;
-- last_day(date) : 해당 날짜를 기준으로 이번 달의 마지막 날을 찾는다
SELECT last_day(sysdate) FROM dual;
'공부 > Database 복습' 카테고리의 다른 글
6.Database 조인 (0) | 2021.08.01 |
---|---|
5.Database 정렬 (0) | 2021.07.26 |
4.Database 그룹 함수 (0) | 2021.07.19 |
2.Database WHERE (0) | 2021.07.18 |
1.데이터베이스 SELECT (0) | 2021.07.17 |