Database 데이터 타입

Leutbing·2023년 8월 11일
0

Database 데이터 타입


Database는 폴더라고 생각하면 된다.
Table은 파일이라고 생각하면 된다.

Data type

column을 만들 때 data type을 명시하게 된다.
data type은 데이터의 종류라는 뜻이다.
문자, 숫자, 소수, 시간, 참거짓여부 등 여러 종류가 있다.

문자타입 지정


VARCHAR을 가장 많이 사용한다.

참고)
VARCHAR(300) 해놓으면 나중에 10자만 저장한다고 해도 300자만큼 하드용량을 차지하는게 아니다.
실제 넣은 10자 + 1byte 만큼 용량을 차지한다.
(글자가 256자 이상이면 + 1byte 말고 + 2byte 입니다.)

참고2)
CHAR(10) 이렇게 해놓으면 나중에 10자만 저장하면 딱 10자만큼 용량을 차지한다. 다만 5자만 저장해도 10자만큼 용량을 차지한다.
항상 고정된 크기의 글자가 필요한 경우 CHAR쓰는게 성능상 이점이 있을 수 있다. 근데 그런 경우는

숫자타입 지정


FLOAT, DOUBLE, DECIMAL은 소수점이 들어있는 숫자를 저장한다.
다만 FLOAT, DOUBLE은 성능은 괜찮으나 정확도가 낮을 수 있다.

참고)
양의 숫자만 저장하고 싶으면 column만들 때 unsigned 옵션을 켜면 된다.
그럼 SMALLINT의 경우 0~65535 까지 저장가능하다.

참고2)
넣는 숫자가 커진다고 DB용량을 더 차지하고 그런거 아닙니다. INT로 만들어놨으면 데이터 1개당 무조건 4byte를 차지한다. SMALLINT는 2byte, BIGINT는 8byte이다.

참고3)
예전엔 INT(4) 이렇게 출력할 숫자 자릿수를 미리 만들고 그랬다. 하지만, 요즘은 사용하지 않는다.

날짜나 시간 타입 지정


보통 DATETIME을 많이 사용한다.
TIMESTAMP는 MYSQL 에선 2038년 까지 밖에 저장이 안되어서 보통 안쓴다.

기타 타입

BLOB
영상, 사진같은 바이너리 데이터 자정시 사용
JSON
JSON 데이터 저장시
BOOLEAN
참거짓 여부 데이터 저장시 사용

MySQL, Oracle, Postgresql 등 DBMS 종류마다 저장할 수 있는 타입이 다르다. 예를 들면 Postgresql은 확장기능 설치하면 유저 GPS 좌표정보도 저장가능하다. 그래서 당근마켓 이런데서 이용하고 있다. 물론 MySQL에서도 대충 숫자나 문자로 바꾸면 저장가능하다.

profile
꾸준히 성장하는 개발자를 목표로 합니다.

0개의 댓글