MySQLテーブルの定義では、INT(5)
とSMALLINT(5)
の違いはありますか?または、両方とも同じサイズを表しますか?
int
とsmallint
はサイズが異なるため、範囲が異なります。 _(5)
_はsmallint(5)
またはint(5)
は "Numeric Type Attribute" と呼ばれ、フィールドの「表示幅」を表します。
MySQLは、オプションで整数データ型の表示幅を括弧で囲んで型のベースキーワードの後に指定するための拡張をサポートしています。たとえば、
INT(4)
は、表示幅が4桁のINT
を指定します。このオプションの表示幅をアプリケーションで使用すると、列に指定された幅よりも狭い幅の整数値を、スペースでそれらを左に埋め込むことによって表示できます。 (つまり、この幅は結果セットとともに返されるメタデータに存在します。それが使用されるかどうかはアプリケーション次第です。)オプションの(非標準の)属性
ZEROFILL
と組み合わせて使用すると、デフォルトのスペースのパディングはゼロに置き換えられます。たとえば、INT(4) ZEROFILL
として宣言された列の場合、_5
_の値は_0005
_として取得されます。
これはMySQLの「拡張」であり、zerofillは拡張の「拡張」です。
数値型の表示を制御する正気な方法では、数値型の属性を使用せず、代わりに