Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  数値型の属性

11.2.5 数値型の属性

MySQL では、整数データ型の基本キーワードに続く括弧内で、その型の表示幅をオプションで指定する拡張をサポートしています。たとえば、INT(4) は、4 桁の表示幅の INT を指定しています。このオプションの表示幅は、左側をスペースでパディングすることによって、カラムに対して指定された幅よりも狭く整数値を表示するために、アプリケーションで使用される場合があります。(つまり、この幅は結果セットで返されるメタデータの中にあります。これを使用するかどうかは、アプリケーションしだいです。)

表示幅は、カラムに格納できない値の範囲を制約しません。カラムの表示幅より広い値が正しく表示されなくなることもありません。たとえば、SMALLINT(3) として指定されたカラムには、-32768 から 32767 の通常の SMALLINT 範囲があり、3 桁が許可されたこの範囲外の値は、4 桁以上を使用してすべて表示されます。

オプション (非標準) の属性 ZEROFILL と一緒に使用すると、デフォルトのスペースのパディングはゼロに置き換えられます。たとえば、INT(4) ZEROFILL として宣言されたカラムの場合、5 の値は 0005 として取得されます。

注記

ZEROFILL 属性は、カラムが式や UNION クエリーに含まれているときは無視されます。

ZEROFILL 属性を持つ整数カラムに表示幅より大きな値を格納した場合、MySQL が一部の複雑な結合に対して一時テーブルを生成するときに問題が発生することがあります。これらの場合、MySQL は、カラムの表示幅内でデータ値が適合すると想定します。

すべての整数型には、オプション (非標準) 属性 UNSIGNED を指定できます。符号なしの型は、カラムで負ではない数値しか許可しないとき、またはカラムの上限の数値範囲を大きくする必要があるときに使用できます。たとえば、INT カラムが UNSIGNED である場合、カラム範囲のサイズは同じですが、その終点は -21474836482147483647 から、04294967295 に変化します。

浮動小数点と固定小数点も UNSIGNED になり得ます。整数型と同じように、この属性は負の値がカラムに格納されるのを防ぎます。整数型とは異なり、カラム値の上限範囲は変わりません。

数値カラムに対して ZEROFILL を指定すると、MySQL は自動的にそのカラムに UNSIGNED 属性を追加します。

整数または浮動小数点のデータ型には、追加の属性 AUTO_INCREMENT を指定できます。インデックスが設定された AUTO_INCREMENT カラムに NULL (推奨) または 0 の値を挿入すると、カラムは次のシーケンス値に設定されます。通常、これは value+1 です。ここで value は現在テーブルにあるカラムの最大値です。AUTO_INCREMENT シーケンスは 1 で始まります。(AUTO_INCREMENT 値を生成するために NULL を挿入する場合、カラムを NOT NULL と宣言する必要があります。カラムを NULL と宣言した場合、NULL を挿入すると NULL が格納されます。)

MySQL 5.6.9 以降では、AUTO_INCREMENT カラムの負の値はサポートされません。