MySQL 數(shù)據(jù)庫(kù)中的金錢類型包括 DECIMAL 和 FLOAT,這兩種類型都能存儲(chǔ)小數(shù)點(diǎn)后的數(shù)字。
DECIMAL 類型是 MySQL 支持的一種高精度類型,它能夠存儲(chǔ)最大長(zhǎng)度為 65 個(gè)數(shù)字的數(shù)值,且可以指定小數(shù)位。例如 DECIMAL(10,2) 表示最多可存儲(chǔ) 10 位數(shù)值,其中有 2 位小數(shù),即最大數(shù)值為 9999999.99。DECIMAL 類型可以精確存儲(chǔ)貨幣數(shù)值,因此非常適合處理財(cái)務(wù)數(shù)據(jù)。
CREATE TABLE orders ( order_id INT PRIMARY KEY, total_price DECIMAL(10,2) );
在上述示例中,orders 表中有一個(gè) total_price 列,它的類型是 DECIMAL,最多可以存儲(chǔ) 10 位數(shù),其中有 2 位小數(shù)。這意味著可以記錄總價(jià)為數(shù)百萬(wàn)美元的訂單,而且數(shù)值的精度非常高。
另一種 MySQL 支持的金錢類型是 FLOAT,它能夠存儲(chǔ)比 DECIMAL 更大的數(shù)值范圍,但精度不如 DECIMAL 那么高。FLOAT 類型能夠保存小數(shù)點(diǎn)后 23 位有效數(shù)字,通常用于存儲(chǔ)科學(xué)計(jì)算等精度要求不高的數(shù)據(jù)。
CREATE TABLE products ( product_id INT PRIMARY KEY, price FLOAT(8,2) );
在上述示例中,products 表中有一個(gè) price 列,它的類型是 FLOAT,最多可以存儲(chǔ) 8 位數(shù),其中有 2 位小數(shù)。這比 DECIMAL 少了兩位數(shù)值,但仍然足以表示商品價(jià)格。