このページは機械翻訳したものです。
整数データ型の場合、M は最大表示幅を示します。 最大表示幅は 255 です。 表示幅は、セクション11.1.6「数値型の属性」 で説明されているように、型が格納できる値の範囲とは無関係です。
浮動小数点データ型および固定小数点データ型の場合、M は格納できる合計桁数です。
MySQL 8.0.17 では、整数データ型の表示幅属性は非推奨になりました。将来のバージョンの MySQL ではサポートされなくなる予定です。
数値カラムに対して ZEROFILL を指定すると、MySQL は自動的にそのカラムに UNSIGNED 属性を追加します。
MySQL 8.0.17 では、ZEROFILL 属性は数値データ型では非推奨です。将来のバージョンの MySQL ではサポートされなくなる予定です。 この属性の効果を生成する別の方法の使用を検討してください。 たとえば、アプリケーションでは、LPAD() 関数を使用して、必要な幅まで数値をゼロ埋めたり、書式設定された数値を CHAR カラムに格納したりできます。
UNSIGNED 属性を許可している数値データ型は、SIGNED も許可します。 ただし、このデータ型はデフォルトで符号付きになっているため、SIGNED 属性を指定しても効果はありません。
MySQL 8.0.17 では、FLOAT、DOUBLE および DECIMAL(およびすべてのシノニム) タイプのカラムに対して UNSIGNED 属性は非推奨になりました。将来のバージョンの MySQL ではサポートされなくなる予定です。 このようなカラムには、かわりに単純な CHECK 制約の使用を検討してください。
SERIAL は BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE のエイリアスです。
整数カラム定義の中の SERIAL DEFAULT VALUE は NOT NULL AUTO_INCREMENT UNIQUE のエイリアスです。
一方が UNSIGNED 型のときに 2 つの整数値の間で減算を行うと、NO_UNSIGNED_SUBTRACTION SQL モードが有効でないかぎり、結果の値は符号なしになります。 セクション12.11「キャスト関数と演算子」を参照してください。
-
ビット値型。
Mは、値あたりのビット数 (1 から 64) を表します。Mを省略した場合のデフォルトは 1 です。 -
TINYINT[(M)] [UNSIGNED] [ZEROFILL]非常に小さい整数。 符号付きの範囲は
-128から127です。 符号なしの範囲は0から255です。 -
これらの型は
TINYINT(1)のシノニムです。 ゼロの値は false と見なされます。 ゼロ以外の値は true と見なされます。mysql> SELECT IF(0, 'true', 'false'); +------------------------+ | IF(0, 'true', 'false') | +------------------------+ | false | +------------------------+ mysql> SELECT IF(1, 'true', 'false'); +------------------------+ | IF(1, 'true', 'false') | +------------------------+ | true | +------------------------+ mysql> SELECT IF(2, 'true', 'false'); +------------------------+ | IF(2, 'true', 'false') | +------------------------+ | true | +------------------------+ただし、ここに示されているように、
TRUE値とFALSE値はそれぞれ、1と0の単なるエイリアスです。mysql> SELECT IF(0 = FALSE, 'true', 'false'); +--------------------------------+ | IF(0 = FALSE, 'true', 'false') | +--------------------------------+ | true | +--------------------------------+ mysql> SELECT IF(1 = TRUE, 'true', 'false'); +-------------------------------+ | IF(1 = TRUE, 'true', 'false') | +-------------------------------+ | true | +-------------------------------+ mysql> SELECT IF(2 = TRUE, 'true', 'false'); +-------------------------------+ | IF(2 = TRUE, 'true', 'false') | +-------------------------------+ | false | +-------------------------------+ mysql> SELECT IF(2 = FALSE, 'true', 'false'); +--------------------------------+ | IF(2 = FALSE, 'true', 'false') | +--------------------------------+ | false | +--------------------------------+最後の 2 つのステートメントは、
2が1とも0とも等しくないために示される結果を表示します。 -
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]小さい整数。 符号付きの範囲は
-32768から32767です。 符号なしの範囲は0から65535です。 -
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]中間サイズの整数。 符号付きの範囲は
-8388608から8388607です。 符号なしの範囲は0から16777215です。 -
INT[(M)] [UNSIGNED] [ZEROFILL]普通サイズの整数。 符号付きの範囲は
-2147483648から2147483647です。 符号なしの範囲は0から4294967295です。 -
INTEGER[(M)] [UNSIGNED] [ZEROFILL]この型は
INTのシノニムです。 -
BIGINT[(M)] [UNSIGNED] [ZEROFILL]大きい整数。 符号付きの範囲は
-9223372036854775808から9223372036854775807です。 符号なしの範囲は0から18446744073709551615です。SERIALはBIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUEのエイリアスです。BIGINTカラムについて注意の必要な点は、次のとおりです。-
すべての演算は符号付きの
BIGINT値またはDOUBLE値を使用して行われるため、ビット関数を使用しないかぎり、9223372036854775807(63 ビット) よりも大きい符号なしの整数を使用しないでください。 そのようにした場合、BIGINT値からDOUBLE値への変換時に、丸め誤差のために結果の最後の数桁に誤差が生じる可能性があります。MySQL は、次の場合に、
BIGINTを扱うことができます。符号なしの大きな値を
BIGINTカラムに格納するために整数を使用するとき。MIN(またはcol_name)MAX(内。ここでcol_name)col_nameはBIGINTカラムを指します。演算子 (
+、-、*など) を使用する場合。ここで両方のオペランドは整数です。
文字列を使用して格納すると、いつでも正確な整数値を
BIGINTカラムに格納できます。 この場合、MySQL は、中間倍精度表現を含まない文字列から数値に変換します。両方のオペランドが整数値の場合、
-、+、および*の演算子は、BIGINT演算を使用します。 これは、2 つの大きい整数 (または整数を返す関数からの結果) を掛け合わした場合、その結果が9223372036854775807より大きいときには、予期しない結果になるということを意味します。
-
-
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]パックされた「正確な」固定小数点数。
Mは桁数の合計 (精度) で、Dは小数点以下の桁数 (スケール) です。 小数点と、負の数に対する-の記号はMにはカウントされません。Dが 0 のときは、小数点や小数部はありません。DECIMALの最大桁数 (M) は 65 です。 サポートされる小数部の最大桁数 (D) は 30 です。Dが省略された場合のデフォルトは 0 です。Mが省略された場合のデフォルトは 10 です。 (DECIMALリテラルのテキストの長さには制限もあります。セクション12.25.3「式の処理」 を参照してください。)UNSIGNEDが指定されている場合、負の値は許可されません。 MySQL 8.0.17 では、DECIMAL型のカラム (およびシノニム) のUNSIGNED属性は非推奨になりました。将来のバージョンの MySQL ではサポートされなくなる予定です。 このようなカラムには、かわりに単純なCHECK制約の使用を検討してください。DECIMALカラムを使用したすべての基本的な計算 (+, -, *, /) は、65 桁の精度で行われます。 -
DEC[(,M[,D])] [UNSIGNED] [ZEROFILL]NUMERIC[(,M[,D])] [UNSIGNED] [ZEROFILL]FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]これらの型は
DECIMALのシノニムです。FIXEDシノニムは、ほかのデータベースシステムとの互換性のために使用できます。 -
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]小さい (単精度) 浮動小数点数。 許可される値は、
-3.402823466E+38から-1.175494351E-38、0、および1.175494351E-38から3.402823466E+38です。 これらは、IEEE スタンダードに基づいた理論的な限度です。 使用しているハードウェアまたはオペレーティングシステムによっては、実際の範囲は少し小さくなる場合があります。Mは桁数の合計で、Dは小数点以下の桁数です。MとDを省略した場合、値はハードウェアで許可された限度まで格納されます。 単精度小数点数はおおよそ小数第 7 位まで正確です。FLOAT(は、非標準の MySQL 拡張機能です。 MySQL 8.0.17 では、この構文は非推奨であり、将来のバージョンの MySQL ではサポートされなくなる予定です。M,D)UNSIGNEDが指定されている場合、負の値は許可されません。 MySQL 8.0.17 では、FLOAT型のカラム (およびシノニム) のUNSIGNED属性は非推奨になっており、将来のバージョンの MySQL ではサポートされなくなる予定です。 このようなカラムには、かわりに単純なCHECK制約の使用を検討してください。MySQL ではすべての計算が倍精度で行われているので、
FLOATを使用すると、予想外の問題が起きることがあります。 セクションB.3.4.7「一致する行がない場合の問題の解決」を参照してください。 -
FLOAT(p) [UNSIGNED] [ZEROFILL]浮動小数点数です。
pは精度をビットで表現しますが、MySQL は、結果として得られるデータ型に対してFLOATまたはDOUBLEのどちらを使用するかを決めるためだけにこの値を使用します。pが 0 から 24 のとき、そのデータ型はM値もD値もないFLOATになります。pが 25 から 53 のとき、そのデータ型はM値もD値もないDOUBLEになります。 結果となるカラムの範囲は、このセクションで前述した単精度FLOATまたは倍精度DOUBLEデータ型の場合と同じです。UNSIGNEDが指定されている場合、負の値は許可されません。 MySQL 8.0.17 では、FLOAT型のカラム (およびシノニム) のUNSIGNED属性は非推奨になっており、将来のバージョンの MySQL ではサポートされなくなる予定です。 このようなカラムには、かわりに単純なCHECK制約の使用を検討してください。 -
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]普通サイズ (倍精度) の浮動小数点数。 許可されている値は、
-1.7976931348623157E+308から-2.2250738585072014E-308、0、および2.2250738585072014E-308から1.7976931348623157E+308です。 これらは、IEEE スタンダードに基づいた理論的な限度です。 使用しているハードウェアまたはオペレーティングシステムによっては、実際の範囲は少し小さくなる場合があります。Mは桁数の合計で、Dは小数点以下の桁数です。MとDを省略した場合、値はハードウェアで許可された限度まで格納されます。 倍精度小数点数はおおよそ小数第 15 位まで正確です。DOUBLE(は、非標準の MySQL 拡張機能です。 MySQL 8.0.17 では、この構文は非推奨であり、将来のバージョンの MySQL ではサポートされなくなる予定です。M,D)UNSIGNEDが指定されている場合、負の値は許可されません。 MySQL 8.0.17 では、DOUBLE型のカラム (およびシノニム) のUNSIGNED属性は非推奨になっており、将来のバージョンの MySQL ではサポートされなくなる予定です。 このようなカラムには、かわりに単純なCHECK制約の使用を検討してください。 -
DOUBLE PRECISION[(,M,D)] [UNSIGNED] [ZEROFILL]REAL[(M,D)] [UNSIGNED] [ZEROFILL]これらの型は
DOUBLEのシノニムです。 例外:REAL_AS_FLOATSQL モードが有効な場合は、DOUBLEではなくREALがFLOATのシノニムになります。