欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql建表時的價格用什么類型定義

錢衛國2年前620瀏覽0評論

mysql建表時的價格用什么類型定義?

MySQL中可以用來做價格的字段一般有float、DOUBLE、DECIMAL

如定義一個money字段類型為float(9,2),則money字段最大長度為9,整數位是6位,小數位是2位。

以下摘自MySQL 5.1參考手冊:

1、FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

小(單精度)浮點數。允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。這些是理論限制,基于IEEE標準。實際的范圍根據硬件或操作系統的不同可能稍微小些。

M是小數總位數,D是小數點后面的位數。如果M和D被省略,根據硬件允許的限制來保存值。單精度浮點數精確到大約7位小數位。

如果指定UNSIGNED,不允許負值。

使用浮點數可能會遇到意想不到的問題,因為在MySQL中的所有計算用雙精度完成。參見A.5.7節,“解決與不匹配行有關的問題”。

2、DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

普通大小(雙精度)浮點數。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。這些是理論限制,基于IEEE標準。實際的范圍根據硬件或操作系統的不同可能稍微小些。

M是小數總位數,D是小數點后面的位數。如果M和D被省略,根據硬件允許的限制來保存值。雙精度浮點數精確到大約15位小數位。

如果指定UNSIGNED,不允許負值。

3、DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]

為DOUBLE的同義詞。除了:如果SQL服務器模式包括REAL_AS_FLOAT選項,REAL是FLOAT的同義詞而不是DOUBLE的同義詞。

4、FLOAT(p) [UNSIGNED] [ZEROFILL]

浮點數。p表示精度(以位數表示),但MySQL只使用該值來確定是否結果列的數據類型為FLOAT或DOUBLE。如果p為從0到24,數據類型變為沒有M或D值的FLOAT。如果p為從25到53,數據類型變為沒有M或D值的DOUBLE。結果列范圍與本節前面描述的單精度FLOAT或雙精度DOUBLE數據類型相同。

FLOAT(p)語法與ODBC兼容。

5、DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

壓縮的“嚴格”定點數。M是小數位數(精度)的總數,D是小數點(標度)后面的位數。小數點和(負數)的‘-’符號不包括在M中。如果D是0,則值沒有小數點或分數部分。DECIMAL整數最大位數(M)為65。支持的十進制數的最大位數(D)是30。如果D被省略, 默認是0。如果M被省略, 默認是10。

如果指定UNSIGNED,不允許負值。

所有DECIMAL列的基本計算(+,-,*,/)用65位精度完成。

6、DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]

是DECIMAL的同義詞。FIXED同義詞適用于與其它服務器的兼容性。