MySQL 8.0发布说明
MySQL 8.0源代码文档10bet官方网站
MySQL提供了精确数学的支持:数值处理会导致非常精确的结果和对无效值的高度控制。精确数学是基于以下两个特征:
控制服务器接受或拒绝无效数据的严格程度的SQL模式。
用于定点运算的MySQL库。
这些特性对数字操作有一些暗示,并提供了对标准SQL的高度遵从:
精确计算:对于精确值的数字,计算不会引入浮点错误。相反,使用精确的精度。例如,MySQL将数字处理为
.0001
作为精确值而不是近似值,将它加一万次会得到精确的结果1
而不是一个仅仅是”关闭”到1。定义良好的舍入行为:对于精确值编号,结果
圆形的()
这取决于它的参数,而不是环境因素,比如底层C库是如何工作的。平台独立性:对精确数值的操作在Windows和Unix等不同平台上是相同的。
控制对无效值的处理:溢出和除零是可检测的,可作为错误处理。例如,可以将对于列来说太大的值视为错误,而不是将值截断以位于列的数据类型范围内。类似地,您可以将除零视为错误,而不是产生结果的操作
空值
。选择哪种方法取决于服务器SQL模式的设置。
以下讨论涵盖了精确数学作品的若干方面,包括具有旧应用程序的可能的不兼容性。最后,给出了一些示例,用于演示MySQL如何精确处理数字操作。有关控制SQL模式的信息,请参阅第5.1.11节,“服务器SQL模式”。