データ型による格納可能バイトの違い
ちなみに僕は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バイト分入ったので、長さを指定しても意味はないのだろう。
イマイチ腑に落ちないけど。