tft每日頭條

 > 科技

 > mysql裡面decimal的長度

mysql裡面decimal的長度

科技 更新时间:2024-12-05 09:36:21

MySQL DECIMAL數據類型用于在數據庫中存儲精确的數值。對于保持精确精度的列,我們通常使用DECIMAL數據類型,例如會計系統中的貨币數據。

要定義數據類型為DECIMAL的列,使用以下語法:

column_name DECIMAL(P,D);

在上面的語法中:

  • P是表示有效位數的精度。P的範圍是1到65。
  • D表示小數點後的位數。D的範圍是0到30。MySQL要求D小于或等于(<=)P。

DECIMAL(P,D)表示該列最多可以存儲帶D位小數的P位數。小數列的實際範圍取決于精度和小數位數。

除了DECIMAL關鍵字外,還可以使用DEC、FIXED或NUMERIC,因為它們是DECIMAL的同義詞。

與INT數據類型一樣,DECIMAL類型也具有UNSIGNED和ZEROFILL屬性。如果我們使用UNSIGNED屬性,則定義為DECIMAL UNSIGNED的列将不接受負值。

在使用ZEROFILL的情況下,MySQL将顯示值填充0,直到列定義指定的顯示寬度。另外,如果對DECIMAL列使用ZEROFILL,MySQL會自動向列中添加UNSIGNED屬性。

下面的示例使用DECIMAL數據類型定義amount列。

amount DECIMAL(6,2);

在本例中,amount列可以存儲6位數字(2位小數);因此,amount列的範圍是從9999.99到-9999.99。

MySQL允許我們使用以下語法:

column_name DECIMAL(P);

這相當于:

column_name DECIMAL(P,0);

在本例中,列不包含小數部分或小數點。

此外,我們甚至可以使用以下語法。

column_name DECIMAL;

在這種情況下,P的默認值是10。

DECIMAL存儲

MySQL分别為整數部分和小數部分分配存儲空間。MySQL使用二進制格式存儲十進制值。它把9個數字壓縮成4個字節。

對于每個部分,存儲每9位數字需要4個字節。剩餘數字所需的存儲如下表所示:

剩下的數字

字節數

0

0

1–2

1

3–4

2

5–6

3

7–9

4

例如,DECIMAL(19,9)的小數部分為9位,整數部分為19-9=10位。小數部分需要4個字節。整數部分的前9位需要4個字節,剩餘的1位需要1個字節。DECIMAL(19,9)列總共需要9個字節。

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裡面decimal的長度(MySQL之DECIMAL數據類型)1

第四,更改cost列以包含ZEROFILL屬性。

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

再次查詢materials表。

SELECT * FROM materials;

mysql裡面decimal的長度(MySQL之DECIMAL數據類型)2

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

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved