MySQL入門課程:浮點(diǎn)數(shù)類型
最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!
我要咨詢MySQL入門課程:浮點(diǎn)數(shù)類型,MySQL支持所有的ANSI/ISO SQL92的浮點(diǎn)數(shù)字類型。這些類型包括準(zhǔn)確數(shù)字的數(shù)據(jù)類型(NUMERIC, DECIMAL),也包括近似數(shù)字的數(shù)據(jù)類型(FLOAT, REAL,和DOUBLE PRECISION)。關(guān)鍵詞DEC是DECIMAL一個(gè)同義詞:
FLOAT[(M,D)] [ZEROFILL]
取值范圍:-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38
存儲(chǔ)要求:4個(gè)字節(jié)
DOUBLE[(M,D)] [ZEROFILL]、DOUBLE PRECISION[(M,D)] [ZEROFILL]
取值范圍:-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308
存儲(chǔ)要求:8個(gè)字節(jié)
DECIMAL(M[,D]) [ZEROFILL]、NUMERIC(M[, D]) [ZEROFILL]
取值范圍:實(shí)際的范圍可以通過M和D的選擇被限制
存儲(chǔ)要求:M字節(jié)(低于3.23版本)M+2字節(jié)(3.23或更高版本)
NUMERIC和DECIMAL類型
表1-6 M和D對DECIMAL類型取值范圍的影響
類 型 說 明 |
取值范圍(MySQL < 3.23) |
取值范圍(MySQL * 3.23) |
DECIMAL(4,
1) |
-9.9 到 99.9 |
-999.9 到 9999.9 |
DECIMAL(5,
1) |
-99.9 到 999.9 |
-9999.9 到 99999.9 |
DECIMAL(6,
1) |
-999.9 到 9999.9 |
-99999.9 到 999999.9 |
DECIMAL(6,
2) |
-99.99 到 999.99 |
-9999.99 到 99999.99 |
DECIMAL(6,
3) |
-9.999 到 99.999 |
-999.999 到 9999.999 |
給定的 DECIMAL 類型的取值范圍取決于MySQL 的版本。
對于 MySQL 3.23 以前的版本,DECIMAL(M, D) 列的每個(gè)值占用 M 字節(jié),而符號(如果需要)和小數(shù)點(diǎn)包括在 M 字節(jié)中。因此,類型為 DECIMAL(5,2) 的列,其取值范圍為 -9.99 到 99.99,因?yàn)樗鼈兏采w了所有可能的 5 個(gè)字符的值。
對于MySQL 3.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ǔ)符號和小數(shù)點(diǎn),因此自 MySQL 3.23 以來 DECIMAL 值占 M + 2 個(gè)字節(jié)。對于 DECIMAL(5, 2),“最長”的值(-999.99)需要 7 個(gè)字節(jié)。在正取值范圍的一端,不需要正號,因此 MySQL 利用它擴(kuò)充了取值范圍,使其超過了 ANSI 所規(guī)范所要求的取值范圍。如 DECIMAL(5, 2) 的最大值為 9999.99,因?yàn)橛?7 個(gè)字節(jié)可用。
簡而言之,在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范圍等于更早版本中的 DECIMAL(M + 2, D) 的取值范圍。
- 冉乃綱-老師CUUG金牌講師
- 冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]
