[MySQL] TINYINT 사용하기

niz w·2024년 12월 12일

SQL

목록 보기
10/17

👉 전개

DB를 생성하면서 항상 Status 라는 컬럼은 0, 1로 작성을 했었다.
물론 경우의 수가 더 늘어나면 w,s,d 등의 이니셜로도 작성했지만... 거의 0,1,2로 처리를 했는데!🤨

0, 1로만 하는 경우에는 주로 체크 여부다 보니까 true, false로 받아서 다시 변환 후 저장해야하는 게 불편했다.

MySQL은 boolean은 없나🤔 찾아보니... 없다고 한다.
이 부분을 해결하는 Type이 TINYINT라고 해서 어떻게 사용되는지 정리해보려고 한다.




✨ TINYINT

일단 boolean은 우리가 알다시피 true, false를 나타낸다.
tinyint는 boolean과 동의어이지만, 단순히 0, 1로 나타낸다는 점만 다르다고 한다.


무조건 0,1만 되는 것은 아니다!!
0은 false로 인식되지만, 그 외의 수는 true로 인식된다고 한다.
물론 데이터를 변경하는 쿼리를 쓸 때, boolean으로 true를 넘기면 기본 true 값인 1로 저장은 된다!

위의 이미지처럼 저장된 데이터를 불러와보면...

DTO 상에서 Boolean으로 타입만 지정해주고 다른 조치를 하지 않았지만,

1에 맞는 true가 반환되었다!


반대로 변경을 해보자면!
pathVariable로 원하는 상태값을 넣어 전달하고자 한다.

http://localhost:8080/user/{userId}/update-status/{status}의 경로에 맞춰
http://localhosot:8080/user/[userId]/update-status/false로 전송을 했다.

첫 번째 데이터에 적용해 준 결과, false에 맞는 0으로 결과가 변경된 것을 볼 수 있다!




✨ 전체 INT 타입

TINYINT

  • 크기 : 0 ~ 255
  • 설명 : 0을 시작으로 2^8번째까지의 정수 (8 = 2^3)
  • 용량 : 1byte

SMALLINT

  • 크기 : -32,768 ~ 32,767
  • 설명 : -2^15 ~ (2^15-1) 사이의 정수 (15 = 2^4-1)
  • 용량 : 2byte (tinyint * 2byte)

INT

  • 크기 : -2,147,483,648 ~ 2,147,483,647
  • 설명 : -2^31 ~ (2^31-1) 사이의 정수 (31 = 2^5-1)
  • 용량 : 4byte (smallint * 2byte)

BIGINT

  • 크기 : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  • 설명 : -2^63 ~ (2^63 - 1) 사이의 정수 (63 = 2^6-1)
  • 용량 : 8byte (int * 2byte)

0개의 댓글