首頁  >  文章  >  資料庫  >  mysql中金額用什麼類型

mysql中金額用什麼類型

青灯夜游
青灯夜游原創
2022-06-14 15:20:5716087瀏覽

在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個位元組,decimail(M,D)佔M 2個位元組。

如DECIMAL(5,2) 的最大值為9 9 9 9 . 9 9,因為有7 個位元組可用。

DECIMAL 類型不同於 FLOAT 和 DOUBLE。 DOUBLE 實際上是以字串的形式存放的,DECIMAL 可能的最大取值範圍與 DOUBLE 相同,但是有效的取值範圍由 M 和 D 決定。如果改變 M 而固定 D,則取值範圍將隨 M 的變大而變大。

強調:在MySQL 中,定點數以字串形式存儲,在對精度要求比較高的時候(如貨幣、科學數據),使用DECIMAL 的類型比較好,另外兩個浮點數進行減法和比較運算時也容易出問題,所以在使用浮點數時需要注意,並儘量避免做浮點數比較。

MySQL DECIMAL資料類型和貨幣資料

我們經常將DECIMAL資料類型用於貨幣數據,如價格,工資,帳戶餘額等。如果您設計一個處理貨幣資料的資料庫,則以下語法應沒問題。

amount DECIMAL(19,2);

但是,如果您要遵守公認會計原則(GAAP)規則,則貨幣列必須至少包含4個小數位,以確保舍入值不超過0.01美元。在這種情況下,您應定義具有4個小數位的列,如下所示:

amount DECIMAL(19,4);

#MySQL DECIMAL資料類型範例

首先,建立一個新表名為materials三個欄位分別:id,description和cost。

CREATE TABLE materials (
    id INT AUTO_INCREMENT PRIMARY KEY,
    description VARCHAR(255),
    cost DECIMAL(19 , 4 ) NOT NULL
);

其次,將資料插入materials表中。

INSERT INTO materials(description,cost)
VALUES('Bicycle', 500.34),('Seat',10.23),('Break',5.21);

第三,從表中查詢資料materials。

SELECT 
    *
FROM
    materials;

mysql中金額用什麼類型

第四,修改cost欄位以包含ZEROFILL屬性。

ALTER TABLE materials
MODIFY cost DECIMAL(19,4) zerofill;

五,再查詢材料表。

SELECT 
    *
FROM
    materials;

mysql中金額用什麼類型

如您所見,我們在輸出值中填入了許多零。

【相關推薦:mysql影片教學

#

以上是mysql中金額用什麼類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn