Mysqlで:
INT(1) = 2147483647
4バイトを保存します。
次に、INT(2) = ?
バイトを?
保存します。
INT(1)で2147483647を超えて使用しましたが、機能しません!また、INT(2)で同じ値を使用しましたが、機能しませんか?なんで ?
解決 ?
オプションの表示幅指定子は、ゼロフィルを使用する場合にのみ適用可能であり、整数データ型の内部サイズ(バイト単位)とは関係ありません。常に4バイトです。
このオプションの表示幅は、アプリケーションで、列に指定された幅よりも小さい幅の整数値をスペースで左パディングして表示するために使用できます。(つまり、この幅は、結果セットとともに返されるメタデータに存在します。使用されるかどうかは、アプリケーションによって異なります。)
これが[リンク]です(http://dev.mysql.com/doc/refman/5.5/en/numeric-type-attributes.html)
詳細の例
テーブル名が存在する場合はテーブルを削除します。
テーブルtablenameを作成します(columnname int(4)unsigned zerofill not null default 0);
テーブル名(列名)の値(123)、(456)、(1234);に挿入します。
テーブル名から*を選択します。
出力
0123
0456
1234
括弧内の数字は、フィールドから返される桁数を表します。INT(1)には任意の数値を挿入できますが、0から9までの数値しか取得できません。
MySQLのINTは常に4バイトの数値です。
INTタイプの構文はINT(M)です。ここで、Mは最大表示幅を示します。ただし、すべてのMySQLクライアントがこの値をサポートしているわけではありません。