(해당 포스트는 Inflearn - [백문이불여일타] 데이터 분석을 위한 고급 SQL 강의록입니다.)
정수
- tinyint() : -128~127
- smallint() : -32768~32767
실수
- decimal() : 정밀한 실수 저장 시(ex. 돈)
- double() : 대부분의 실수
- float() : 정밀하지는 않지만 처리속도가 빠름. 성능이 엄청 좋아야 할 경우
문자
- varchar() : 다양한 글자수의 문자
- char() : 일정한 글자수의 문자
보통 char()가 아닌 varchar()가 사용되는 이유는 보통 확실하게 몇 글자가 들어갈지 알 수 없기 때문
날짜, 시간
- date() : 1000-01-01~9999-12-31
- datetime() : 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
- timestamp() : datetime() + timezone (기준시(영국시간인지 한국시간인지)를 표현할 수 있음)
- 만일 OrderDate가 date()나 datetime()이 아닌 varchar()형으로 들어가 있다면(예를들면
12/26/2020
) 이런 자료는 날짜형 연산 함수를 사용할 수가 없다. 따라서 이런 때에는 str_to_date()
함수를 사용해야 한다.
(reference: https://stackoverflow.com/questions/38677002/mysql-convert-string-to-datetime)