MySQL 9.0 版本資訊
MySQL 提供精確數學的支援:數值處理可產生極度精確的結果,並對無效值有高度控制能力。精確數學的基礎在於這兩項功能
SQL 模式,可控制伺服器接受或拒絕無效資料的嚴格程度。
MySQL 用於定點算術的程式庫。
這些功能對數值運算有若干影響,並提供高度符合標準 SQL 的功能
精確計算:對於精確值數字,計算不會引入浮點錯誤。而是使用精確的精確度。例如,MySQL 會將
.0001
之類的數字視為精確值,而不是近似值,並且將其加總 10,000 次會產生剛好1
的結果,而不是僅「接近」1 的值。明確定義的捨入行為:對於精確值數字,
ROUND()
的結果取決於其引數,而不是環境因素,例如基礎 C 程式庫的運作方式。平台獨立性:對精確數值進行的運算在 Windows 和 Unix 等不同平台上是相同的。
控制無效值的處理:溢位和除以零是可偵測的,並且可以視為錯誤。例如,您可以將對欄而言太大的值視為錯誤,而不是將該值截斷為位於欄資料類型範圍內的值。同樣地,您可以將除以零視為錯誤,而不是產生
NULL
結果的運算。要採取哪種方法的選擇取決於伺服器 SQL 模式的設定。
以下討論涵蓋精確數學運作方式的幾個層面,包括與舊版應用程式可能發生的不相容性。最後,會提供一些範例,示範 MySQL 如何精確地處理數值運算。如需有關控制 SQL 模式的資訊,請參閱第 7.1.11 節,「伺服器 SQL 模式」。