새소식

🍹 [5분 내로] 강의실/✏️ 웹 개발자 5분 면접

[DBMS] int(4)와 int(12)의 차이 점은?

  • -
728x90

🤔 Question

👉 INT(4)와 INT(12)의 차이는 많은 사람들이 혼동할 수 있지만, **숫자의 크기와는 관계가 없고, 표현 형식(디스플레이 길이)**과 관련이 있습니다. 이 차이는 주로 MySQL에서 나타나며, 다른 DBMS에서는 의미가 없거나 동작 방식이 다를 수 있습니다.

 

🎯 숫자 크기와의 관계

👉 INT의 숫자 범위는 고정적입니다. 즉, INT 자체는 4바이트(32비트) 정수 타입으로, 크기에 관계없이 -2,147,483,648 ~ 2,147,483,647의 값을 저장할 수 있습니다. 따라서 INT(4)나 INT(12)는 저장 가능한 숫자의 범위에 아무 영향을 미치지 않습니다.

 

🎯 굳이 말하자면, 디스플레이 길이의 제한

👉 디스플레이 길이(INT(M))는 MySQL의 ZEROFILL 옵션을 사용하지 않으면 아무 효과도 없습니다.
예를 들어, ZEROFILL 없이 INT(4)와 INT(12)를 사용하면 그냥 일반적인 정수처럼 출력됩니다(즉, 42는 42로 표시됨).

 

ZEROFILL을 사용하는 경우:

CREATE TABLE example (
    id INT(4) ZEROFILL
);

값이 88라면 출력은 0088가 됩니다.

 

🎯 표현 형식(디스플레이 길이)

👉 숫자 뒤의 숫자(예: 4, 12)는 디스플레이 길이를 의미하며, 이는 해당 숫자가 출력될 때 최소한으로 표시되는 자리수를 나타냅니다. 예: INT(4)는 숫자를 최소 4자리로 출력하려고 하며, 숫자가 4자리보다 작으면 0으로 채워 표시됩니다.
값이 42라면 출력 시 0042로 표시됩니다.
INT(12)는 최소 12자리로 출력하려고 합니다.
값이 42라면 출력 시 000000000042로 표시됩니다.

 

🎯 MySQL 8.0에서의 변화

👉 MySQL 8.0.17 이후, 디스플레이 길이(INT(M))는 더 이상 지원되지 않습니다. 즉, INT, INT(4), INT(12) 모두 동일하게 동작하며, 더 이상 디스플레이 길이를 설정할 수 없습니다.

 

정리

👉 INT(4)와 INT(12)의 차이는 저장 가능한 숫자의 범위와는 무관하며, 단지 출력 형식(디스플레이 길이)에 영향을 줍니다. MySQL 8.0.17 이상에서는 더 이상 의미가 없으니 그냥 INT로 사용하면 됩니다.

 

If I was of any help to you, please buy me coffee 😿😢😥

If you have any questions, please leave them in the comments

🧭 References

[1] reference : https://doctorson0309.tistory.com/

[2] Ads : https://play.google.com/store/apps/details?id=io.cordova.seoulfilter

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.