ホームページ  >  記事  >  データベース  >  mysqlの数値型とは何ですか?

mysqlの数値型とは何ですか?

青灯夜游
青灯夜游オリジナル
2020-10-13 17:43:3414295ブラウズ

mysqlの数値型には、INT型、TINYINT型、SMALLINT型、MEDIUMINT型、BIGINT型、FLOAT型、DOUBLE型、DECIMAL型があります。

mysqlの数値型とは何ですか?

(推奨チュートリアル: mysql ビデオ チュートリアル)

mysql 数値型

1. MySQL 整数型

整数型は数値データとも呼ばれ、数値データ型は主に数値を格納するために使用されます。

MySQL はさまざまな数値データ型を提供します。データ型が異なれば、値の範囲も異なります。保存できる値の範囲が大きくなるほど、必要な記憶域も大きくなります。

MySQL が提供する主な整数型は、TINYINT、SMALLINT、MEDIUMINT、INT、および BIGINT であり、それらの属性フィールドに AUTO_INCREMENT 自動インクリメント制約を追加できます。次の表に、MySQL の数値型を示します。

mysqlの数値型とは何ですか?

上の表からわかるように、整数の型が異なれば、格納するバイト数も異なります。占有バイト数が最も少ないのは TINYINT 型です。最も大きいのは BIGINT 型で、その型が占めるバイト数が多いほど、表現できる値の範囲が大きくなります。

各データ型の値の範囲は、占有バイト数に基づいて確認できます。たとえば、TINYINT の格納に 1 バイト (8 ビット) が必要な場合、TINYINT 符号なし数値の最大値は 28-1 (つまり 255) となり、TINYINT 符号付き数値の最大値は 27-1 (つまり 127) になります。他のタイプの整数の値の範囲の計算方法は、次の表に示すように同じです。

mysqlの数値型とは何ですか?

# ヒント: 表示幅は、データ型の値の範囲とは関係ありません。表示幅は MySQL が表示できる最大桁数を指定するだけであり、桁数が指定された幅より小さい場合はスペースで埋められます。表示幅より大きい値を挿入した場合でも、その型の整数値の範囲を超えない限り、値を挿入して表示できます。たとえば、年フィールドは 19999 に挿入されます。SELECT を使用してカラム値をクエリすると、MySQL は 4 桁の値ではなく 5 桁の完全な 19999 を表示します。

他の整数データ型でも、テーブル構造を定義するときに必要な表示幅を指定できます。指定しない場合、システムは各型のデフォルトの幅値を指定します。

整数型が異なれば、値の範囲も異なり、必要な記憶領域も異なります。したがって、実際のニーズに応じて最適な型を選択する必要があります。これにより、クエリの効率が向上し、記憶領域が節約されます。

2. mysql 10 進数型

MySQL は、浮動小数点数と固定小数点数を使用して小数を表します。

浮動小数点型には、単精度浮動小数点数 (FLOAT) と倍精度浮動小数点数 (DOUBLE) の 2 つがあり、固定小数点型は DECIMAL の 1 つだけです。

浮動小数点型と固定小数点型はどちらも (M, D) で表すことができます。M は精度と呼ばれ、総桁数を示します。D はスケールと呼ばれ、10 進数の桁数を示します。 。

浮動小数点数型の値の範囲は、表示幅と小数点以下の桁数をそれぞれ表す M (1 ~ 255) と D (1 ~ 30、M-2 を超えることはできません) です。 FLOAT および DOUBLE では M および D はオプションであり、FLOAT および DOUBLE 型はハードウェアがサポートする最大精度で保存されます。 DECIMAL のデフォルトの D 値は 0、M 値は 10 です。

次の表に、MySQL の 10 進数の型とストレージ要件を示します。

mysqlの数値型とは何ですか?

DECIMAL 型は FLOAT や DOUBLE とは異なります。 DOUBLE は実際には文字列形式で格納され、DECIMAL の最大値の範囲は DOUBLE と同じですが、有効な値の範囲は M と D によって決まります。 D を固定して M を変更すると、M が大きくなるにつれて値の範囲は広くなります。

上記の表からわかるように、DECIMAL の記憶領域は固定されておらず、精度値 M によって決まり、M 2 バイトを占有します。

FLOAT 型の値の範囲は次のとおりです:

  • 符号付きの値の範囲: -3.402823466E 38~-1.175494351E-38。

  • 符号なし値の範囲: 0 および -1.175494351E-38 ~ -3.402823466E 38。

DOUBLE 型の値の範囲は次のとおりです:

  • 符号付きの値の範囲: -1.7976931348623157E 308~-2.2250738585072014E-308。

  • 符号なし値の範囲: 0 および -2.2250738585072014E-308~-1.7976931348623157E 308。

ヒント: 固定小数点型か浮動小数点型かに関係なく、ユーザー指定の精度が精度の範囲を超える場合は、丸められて処理されます。

FLOAT と DOUBLE は、精度が指定されていない場合、デフォルトで実際の精度 (コンピュータ ハードウェアとオペレーティング システムによって決定される) になります。精度が指定されていない場合、DECIMAL はデフォルトで (10, 0) になります。 。

固定小数点数に対する浮動小数点数の利点は、長さが確実な場合により広い範囲を表現できることですが、欠点は、精度の問題が発生する可能性があることです。

最後に、強調しておきます: MySQL では、固定小数点数は文字列の形式で保存されます。精度要件が比較的高い場合 (通貨、科学データなど)、DECIMAL を使用する方がよいでしょう。浮動小数点数は、減算や比較演算を実行するときに問題が発生しやすいため、浮動小数点数を使用する場合は注意し、浮動小数点の比較を避ける必要があります。

以上がmysqlの数値型とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。