明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

MySQL數(shù)據(jù)分類(lèi)中DECIMAL的用法案例詳細(xì)說(shuō)明

[摘要]在MySQL數(shù)據(jù)類(lèi)型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它們都有各自的作用,下面我們就主要來(lái)介紹一下MySQL數(shù)據(jù)類(lèi)型中的DECIMAL類(lèi)型的作用和用法。本文主要介...
在MySQL數(shù)據(jù)類(lèi)型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它們都有各自的作用,下面我們就主要來(lái)介紹一下MySQL數(shù)據(jù)類(lèi)型中的DECIMAL類(lèi)型的作用和用法。本文主要介紹了MySQL數(shù)據(jù)類(lèi)型中DECIMAL的用法實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下。

一般賦予浮點(diǎn)列的值被四舍五入到這個(gè)列所指定的十進(jìn)制數(shù)。如果在一個(gè)FLOAT(8, 1)的列中存儲(chǔ)1. 2 3 4 5 6,則結(jié)果為1. 2。如果將相同的值存入FLOAT(8, 4) 的列中,則結(jié)果為1. 2 3 4 6。

這表示應(yīng)該定義具有足夠位數(shù)的浮點(diǎn)列以便得到盡可能精確的值。如果想精確到千分之一,那就不要定義使該類(lèi)型僅有兩位小數(shù)。

浮點(diǎn)值的這種處理在MySQL3.23 中有例外,F(xiàn)LOAT(4) 和FLOAT(8) 的性能有所變化。這兩種類(lèi)型現(xiàn)在為單精度( 4 字節(jié))和雙精度( 8 字節(jié))的類(lèi)型,在其值按給出的形式存放(只受硬件的限制)這一點(diǎn)上說(shuō),這兩種類(lèi)型是真浮點(diǎn)類(lèi)型。

DECIMAL 類(lèi)型不同于FLOAT和DECIMAL,其中DECIMAL 實(shí)際是以串存放的。DECIMAL 可能的最大取值范圍與DOUBLE 一樣,但是其有效的取值范圍由M 和D 的值決定。如果改變M 而固定D,則其取值范圍將隨M 的變大而變大。表2 - 7的前三行說(shuō)明了這一點(diǎn)。如果固定M 而改變D,則其取值范圍將隨D 的變大而變小(但精度增加)。表2 - 7的后三行說(shuō)明了這一點(diǎn)。

MySQL數(shù)據(jù)類(lèi)型中DECIMAL的用法實(shí)例詳解

給定的DECIMAL 類(lèi)型的取值范圍取決于MySQL數(shù)據(jù)類(lèi)型的版本。對(duì)于MySQL3.23 以前的版本,DECIMAL(M, D) 列的每個(gè)值占用M 字節(jié),而符號(hào)(如果需要)和小數(shù)點(diǎn)包括在M 字節(jié)中。因此,類(lèi)型為DECIMAL(5, 2) 的列,其取值范圍為-9.99 到9 9 . 9 9,因?yàn)樗鼈兏采w了所有可能的5 個(gè)字符的值。

正如MySQL3.23 一樣,DECIMAL 值是根據(jù)ANSI 規(guī)范進(jìn)行處理的, ANSI 規(guī)范規(guī)定DECIMAL(M, D) 必須能夠表示M 位數(shù)字及D 位小數(shù)的任何值。

例如, DECIMAL(5, 2) 必須能夠表示從-999.99 到999.99 的所有值。而且必須存儲(chǔ)符號(hào)和小數(shù)點(diǎn),因此自MySQL3.23以來(lái)DECIMAL 值占M + 2 個(gè)字節(jié)。對(duì)于DECIMAL(5, 2),“最長(zhǎng)”的值(- 9 9 9 . 9 9)需要7個(gè)字節(jié)。

在正取值范圍的一端,不需要正號(hào),因此MySQL數(shù)據(jù)類(lèi)型利用它擴(kuò)充了取值范圍,使其超過(guò)了ANSI 所規(guī)范所要求的取值范圍。如DECIMAL(5, 2) 的最大值為9 9 9 9 . 9 9,因?yàn)橛? 個(gè)字節(jié)可用。

簡(jiǎn)而言之,在MySQL3.23 及以后的版本中,DECIMAL(M, D) 的取值范圍等于更早版本中的DECIMAL(M + 2, D) 的取值范圍。在MySQL數(shù)據(jù)類(lèi)型的所有版本中,如果某個(gè)DECIMAL 列的D 為0,則不存儲(chǔ)小數(shù)點(diǎn)。這樣做的結(jié)果是擴(kuò)充了列的取值范圍,因?yàn)檫^(guò)去用來(lái)存儲(chǔ)小數(shù)點(diǎn)的字節(jié)現(xiàn)在可用來(lái)存放其他數(shù)字了。

相關(guān)推薦:

有關(guān)decimal類(lèi)型的文章推薦10篇

MySQL數(shù)據(jù)類(lèi)型-decimal詳解

注意mysql 中一訂要用decimal標(biāo)識(shí)貨幣的值

以上就是MySQL數(shù)據(jù)類(lèi)型中DECIMAL的用法實(shí)例詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。