2016.
11.
20
07:09:05
結論から書くと、int(11)の「11」は
表示幅の指定
です。
言い方を変えると
空白埋め(0埋め)される桁数
です。
有効桁数の指定ではありません。
それでは詳細……というほどでもないですが、詳細を書いていきます。
MySQLでテーブル定義を作るとき、
int型は決まり文句のように
int(11)
と指定してきました。
この「11」の意味を長年気にしないで生きてきたのですが
ふと気になったので調べてみようかな~と思ったのが今回のきっかけです。
ほんで、調べたところ……「表示するとき」の空白埋め(0埋め)後の桁数の指定だと分かりました。
例えば、指定が「int(5)」であれば
のように表示されます。
※【空】=半角スペース
つまり、表示幅が5桁になるということですね。
もし「unsigned zerofill」がくっついていれば
半角スペースの代わりに0が使われるので
のように表示されます。
表示幅は相変わらず5桁です。
そうです。
「int(11)」の「11」は、あくまで
表示に関する指定
です。
格納するデータに関する指定ではありません。
「int(11)」だろうと「int(1)」だろうとint型に入れられる値の範囲は
-2,147,483,648 ~ 2,147,483,647(signed)
0 ~ 4,294,967,295(unsigned)
です。
そんな感じ\(--)/
表示幅の指定
です。
言い方を変えると
空白埋め(0埋め)される桁数
です。
有効桁数の指定ではありません。
それでは詳細……というほどでもないですが、詳細を書いていきます。
MySQLでテーブル定義を作るとき、
int型は決まり文句のように
int(11)
と指定してきました。
この「11」の意味を長年気にしないで生きてきたのですが
ふと気になったので調べてみようかな~と思ったのが今回のきっかけです。
ほんで、調べたところ……「表示するとき」の空白埋め(0埋め)後の桁数の指定だと分かりました。
例えば、指定が「int(5)」であれば
【空】【空】【空】【空】1
【空】【空】【空】12
【空】【空】123
【空】1234
12345
【空】【空】【空】12
【空】【空】123
【空】1234
12345
のように表示されます。
※【空】=半角スペース
つまり、表示幅が5桁になるということですね。
もし「unsigned zerofill」がくっついていれば
半角スペースの代わりに0が使われるので
00001
00012
00123
01234
12345
00012
00123
01234
12345
のように表示されます。
表示幅は相変わらず5桁です。
そうです。
「int(11)」の「11」は、あくまで
表示に関する指定
です。
格納するデータに関する指定ではありません。
「int(11)」だろうと「int(1)」だろうとint型に入れられる値の範囲は
-2,147,483,648 ~ 2,147,483,647(signed)
0 ~ 4,294,967,295(unsigned)
です。
そんな感じ\(--)/