데이터베이스 구조 (humanlist)
name |
age |
gender |
job |
홍길동 |
21 |
M |
soldier |
김춘자 |
33 |
F |
CEO |
방태순 |
18 |
F |
student |
윤호상 |
23 |
M |
nurse |
장지태 |
27 |
M |
doctor |
숫자관련 함수
- round / trunc : 반올림 / 내림
- mod : 숫자의 나눈 값의 나머지 값
- ceil : 숫자와 가장 근접한 큰 정수 출력
- floor : 숫자와 가장 근접한 작은 정수 출력
- power : 숫자1의 숫자2 승을 제곱
round() / trunc()
- round(숫자, 자리수)
- select round(987.654, 2), round(987.654, 0), round(987.654, -1) from human_list;
: 987.65 988 990
: 소수점 뒤 2자리, 소수점 앞 1자리, 소수점 앞 2자리까지 반올림출력
: -1 = 정수 부분 첫째자리
mod() / ceil() / floor()
- mod(숫자1, 숫자2) / ceil(숫자) / floor(숫자)
- select mod(121, 10), ceil(123.45), floor(123.45) from human_list;
: 1 124 123
power()
- power(숫자1, 숫자2)
- select power(10, 2) from human_list;
: 100 (10의 2제곱)
날짜관련함수
- sysdate : 시스템의 현재 날짜와 시간
- months_between : 두 날짜 사이의 개월 수
- add_months : 주어진 날짜에 개월을 더함
- next_day : 주어진 날짜를 기준으로 돌아오는 날짜 출력
- last_day : 주어진 날짜가 속한 달의 마지막 날짜 출력
- round / trunc : 주어진 날짜를 반올림 / 내림
※ 날짜형식이 30-NOV-20 등 20/11/30과 다른 형식일 경우
- select to_char(sysdate, 'yy/mm/dd') from dual;
- select to_char(속성, 'yy/mm/dd') from 테이블;
sysdate()
- sysdate
- select sysdate from dual;
: 현재 날짜
months_between()
- months_between('날짜1', '날짜2')
- select months_between('20/09/30', '20/10/31') from human_list;
: 1
- 만약 두 날짜의 차이가 30일이 되지 않는다면 특정 규칙으로 계산된 값 출력
: 25일 차이면 0.954646...
add_months()
- add_months(날짜, 더할 숫자)
: 숫자 만큼 개월 수가 더해짐
next_day()
- next_day(기준 날짜, 요일)
: 기준날짜에서 돌아오는 요일의 날짜 출력
last_day()
- last_day(날짜)
: 해당 날짜의 마지막 일을 출력 (20/02/14면 20/02/29 출력)
round() / trunc()
- round(날짜)
: 일수가 반올림 혹은 내림
형변환 함수 (옆에 용량은 최대 용량)
- char() : 고정 길이 문자 2000byte
- varchar() : 가변 길이 문자 4000byte
- number( , ) : 숫자 (1-38자리, -84~127자리)
- date() : 날짜 (BC 4712년 1월1일 ~ AD 9999년 12월 31일)
- long() : 가변길이 문자 2GB
- clob() : 가변길이 문자 4GB
- blob() : 가변길이 이진데이터 4GB
- raw() : 원시 이진 데이터 2000byte
- long raw() : 가변길이 이진 데이터 2GB
- bfile() : 외부 파일 내 데이터 4GB
형변환 함수
- 묵시적 형변환 : 조건에 따른 자동적인 형변환
- 명시적 형변환 : 값을 설정해주는 수동적인 형변환
- to_char()
: 날짜를 문자형으로 바꿀때
ㆍ년 (YYYY, RRRR, YY, RR, YEAR)
ㆍ월 (MM, MON, MONTH)
ㆍ일 (DD, DAY, DDTH)
ㆍ시, 분, 초 (HH24, HH, MI, SS)
: to_char(1234, '999999') = 6자리수로 출력
: to_char(1234, '099999') = 빈자리를 0으로 채우고 6자리수 출력 (001234)
: to_char(1234, '$9999') = $기호를 붙이고 4자리수 출력
: to_char(1234, '9999.99') = 소수점 이하 2자리 표시
: to_char(12345, '99,999') = 천단위 구분기로 표시 (12,345)
- to_number() : 숫자로 변환
- to_date() : 날짜로 변환
'Database > MySQL' 카테고리의 다른 글
SQL - JOIN의 종류 (inner join, outer join) (0) | 2020.12.15 |
---|---|
SQL - 복수행 함수 (0) | 2020.12.15 |
SQL - 단일행 함수 (3) : 일반 함수 (0) | 2020.12.14 |
SQL - 단일행 함수 (1) : 단일행 함수와 사용법 (0) | 2020.12.14 |
SQL - 데이터와 select (0) | 2020.12.14 |