ホームページ > データベース > mysql チュートリアル > mysqlの金額にはどのような型が使用されますか?

mysqlの金額にはどのような型が使用されますか?

青灯夜游
リリース: 2022-06-14 15:22:04
オリジナル
16156 人が閲覧しました

mysql では、金額には「DECIMAL」型が使用されます。 DECIMAL 型は、金融関連の問題のために特別に設計されたデータ型です。データの範囲と精度の問題を解決できます。物価、賃金、口座残高などの金融データによく使用され、実際に格納されます。文字列形式で定義します。整数部と小数部の桁数を区切って定義できます。構文は「DECIMAL(M,D)」です。パラメータMは数値の最大数(精度)、パラメータ D は小数点の右側の桁数 (スケール) です。

mysqlの金額にはどのような型が使用されますか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql では、金額には「DECIMAL」型が使用されます。

Decimal (固定小数点数) は、財務関連の問題のために特別に設計されたデータ型で、データ範囲と精度の問題を解決できます。

DECIMAL は MySQL 5.1 から導入され、カラム宣言の構文は DECIMAL(M,D) です。 MySQL 5.1 では、パラメータの値の範囲は次のとおりです。

  • M は数値の最大数 (精度) です。その範囲は 1 ~ 65 (古い MySQL バージョンでは、許可される範囲は 1 ~ 254) で、M のデフォルト値は 10 です。

  • D は、小数点の右側の桁数 (スケール) です。範囲は 0 ~ 30 ですが、M を超えてはなりません。

説明: float は 4 バイト、double は 8 バイト、decmail(M,D) は M 2 バイトを占めます。

たとえば、使用可能なバイトが 7 バイトあるため、DECIMAL(5,2) の最大値は 9 9 9 9 . 9 9 です。

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

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

MySQL DECIMAL データ型と金銭データ

価格、賃金、口座残高などの金銭データには、DECIMAL データ型がよく使用されます。通貨データを処理するデータベースを設計している場合は、次の構文で問題ありません。

amount DECIMAL(19,2);
ログイン後にコピー

ただし、一般に認められた会計原則 (GAAP) のルールに準拠する場合は、四捨五入した値が $0.01 を超えないようにするために、通貨列には小数点以下 4 桁以上が含まれている必要があります。この場合、次のように小数点以下 4 桁の列を定義する必要があります:

amount DECIMAL(19,4);
ログイン後にコピー

MySQL DECIMAL データ型の例

まず、新しいテーブル名を作成します。 3 つのフィールド: ID、説明、コスト。

CREATE TABLE materials (
    id INT AUTO_INCREMENT PRIMARY KEY,
    description VARCHAR(255),
    cost DECIMAL(19 , 4 ) NOT NULL
);
ログイン後にコピー

次に、材料テーブルにデータを挿入します。

INSERT INTO materials(description,cost)
VALUES('Bicycle', 500.34),('Seat',10.23),('Break',5.21);
ログイン後にコピー

3 番目に、テーブルからデータ素材をクエリします。

SELECT 
    *
FROM
    materials;
ログイン後にコピー
ログイン後にコピー

mysqlの金額にはどのような型が使用されますか?

4 番目に、コスト列を変更して ZEROFILL 属性を含めます。

ALTER TABLE materials
MODIFY cost DECIMAL(19,4) zerofill;
ログイン後にコピー

5、材料テーブルを再度クエリします。

SELECT 
    *
FROM
    materials;
ログイン後にコピー
ログイン後にコピー

mysqlの金額にはどのような型が使用されますか?

ご覧のとおり、出力値に多数のゼロが埋め込まれています。

[関連する推奨事項: mysql ビデオ チュートリアル ]

以上がmysqlの金額にはどのような型が使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート