DB, ORM/🧊 MySQL
MySQL 데이터 형식, 형 변환
DarrenKwonDev
2020. 10. 30. 21:59
Data type
이걸 왜 한 번도 다루질 않았지? 싶을 정도로 일반적인 내용이어서 그냥 사용하고 있었다.
자세한 설명은 이미 다른 곳에서도 잘 다루고 있으므로 여기서는 자주 사용하는 것만 적어보았다.
숫자
SAMLLINT (+- 3만)
INT (+- 21억)
BIGINT (+- 900경)
FLOAT
DECIMAL(m, [d])
문자
CHAR(n)
VARCHAR(n)
TINYTEXT/TEXT/MEDIUMTEXT(게시판 글의 경우 대개 MEDIUMTEXT 사용함)/LONGTEXT => 최대 4GB
TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB => 음성, 영상 등 blob 데이터를 넣음. 최대 4GB
ENUM
날짜와 시간
DATE
TIME
DATETIME
기타
GEOMETRY
JSON
형변환
case( as [형]) 또는 convert( , [형])으로 형변환 가능함.
select avg(amount) as '평균 구매 갯수' from buytbl; -- 2.9167 값이 나옴
select cast(avg(amount) as signed integer) as '평균 구매 갯수' from buytbl; -- 3
select convert(avg(amount), signed integer) as '평균 구매 갯수' from buytbl; -- 3
concat과 조합하여 다음과 같이 형변환
SELECT
num, concat(cast(price as char(10)), 'x', cast(amount as char(4)), '=') as '단가x수량', price * amount AS '구매액'
FROM
buytbl;
암묵적인 형 변환
똥망언어인 js 처럼 자동 형변환이 됩니다.
select '100' + '200'; -- 300
select 1 < '2mega'; -- true
select concat('100', '200') -- 100200. 아 이건 안되는구나;