INT(5)vs SMALLINT(5):数値型の後の括弧内の数字


29

MySQLのテーブル定義では、との間に違いがINT(5)ありSMALLINT(5)ますか?それとも、両方とも同じサイズを表していますか?

回答:


41

異なるサイズを持って、その結果の範囲です。intsmallint(5)であるsmallint(5)か、int(5)と呼ばれている「数値型属性」と、それはフィールドの「表示幅」を表し、

MySQLは、オプションで整数データ型の表示幅を、その型のベースキーワードに続く括弧で指定するための拡張機能をサポートしています。たとえば、表示幅が4桁のをINT(4)指定しINTます。このオプションの表示幅は、アプリケーションで使用され、列に指定された幅よりも小さい幅の整数値をスペースで左詰めして表示します。(つまり、この幅は結果セットで返されるメタデータに存在します。使用されるかどうかはアプリケーション次第です。)

オプション(非標準)属性と組み合わせて使用​​するとZEROFILL、デフォルトのスペースの埋め込みはゼロに置き換えられます。たとえば、として宣言された列INT(4) ZEROFILLの場合、の値は5として取得され0005ます。

これはMySQLの「拡張機能」であり、ゼロフィルは拡張機能の「拡張機能」です。

数値型の表示を制御する健全な方法では、数値型属性を使用せず、代わりに

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.