purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

データ型による格納可能バイトの違い

ちなみに僕はMYSQLを使ってます。


引用:
ThinkIT 第1回:同じようで違うデータ型 (1/3)


数値型はこんな感じらしい






































格納バイト数 最小値 最大値
tinyint 1 -128 127
smallint 2 -32768 32767
mediumint 3 -8388608 8388607
int 4 -2147483648 2147483647
bigint 8 -9223372036854770000 922337203685477000


varchar型の場合は、長さを100としたら全角文字が50文字まで格納できる。
でもどうもこれは文字コードに依存するらしくmysql文字コードがutf8なら全角だろうと半角だろうと100文字入れられるらしい。


MySQLのvarchar(XX)はバイト数(MySQL3.23) - GRANADA Hatena


さて、ここでちょっと疑問が出た。
僕はNavicatを使ってmysqlにデータ追加とかしてるけど、それだとmidiumint型を指定し、長さを何も入力しないと自動的に8が入る。
でも実際には元の仕様通り3バイト分の数値しか入らなかった。
逆に2とかを入れてみても3バイト分入ったので、長さを指定しても意味はないのだろう。


イマイチ腑に落ちないけど。