MySQL int型別長度的意義是什麼

zmxyzmxy1234發表於2020-08-20
  • 當我們設定int型別時,可以設定int(11),給int一個長度,一直以來都是認為mysql的int儲存的值的長度與設定的int長度有關,如int(3)表示只能儲存3位數字int(11)能儲存11位數字。其實這根本就是大錯特錯。int永遠只佔4個位元組,範圍也不變(無符號除外)
  • 其實int(1)和int(255)的範圍是不變的,完全一模一樣,那麼長度的意義是什麼呢,查了半天資料,最終想明白了,這個長度需要配合zerofill來使用,當設定了zerofill屬性時,比如int(3),那麼儲存一個1時,會自動填充到3位:001 ,這個在某些使用場景是有用的,int(5)就是: 00001
  • 那麼其他型別呢?tinyint跟int是一樣的,而char、varchar等字元型別則確確實實表示位元組大小範圍,在UTF-8編碼下,char(1)則表示只能存1個字元(漢字),char(5)則表示只能存5個字元(漢字)

官方手冊:點我前往
以上

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章