在mysql/sql的操作中,数据类型是如何扩展和转换的?

在mysql/sql的操作中,数据类型是如何扩展和转换的?,mysql,sql,types,floating-point,floating-point-precision,Mysql,Sql,Types,Floating Point,Floating Point Precision,我不清楚SQL中的数学运算是如何完成的。 例如,在Java中,在应用运算之前,数字被“扩展”为整数,当另一个操作数的类型更高或精度不同时,我们得到转换。同样的C++。 但是SQL中会发生什么呢?是否存在一种默认类型,无论底层数据类型和我们是否得到相同类型的转换,它们都是“扩展”的 更新: 我还有以下例子: mysql> select sum from float_test; +-------+ | sum | +-------+ | 59.95 | +-----

我不清楚SQL中的数学运算是如何完成的。
例如,在Java中,在应用运算之前,数字被“扩展”为整数,当另一个操作数的类型更高或精度不同时,我们得到转换。同样的C++。 但是SQL中会发生什么呢?是否存在一种默认类型,无论底层数据类型和我们是否得到相同类型的转换,它们都是“扩展”的

更新:
我还有以下例子:

mysql> select sum from float_test;    
+-------+  
| sum   |  
+-------+  
| 59.95 |  
+-------+  
1 row in set (0.00 sec)    

mysql> select sum*(0.2) from float_test;  
+--------------------+  
| sum*(0.2)          |  
+--------------------+  
| 11.990000152587891 |  
+--------------------+  
1 row in set (0.00 sec)    
sum
是一个浮点数,因此以2位精度显示,但存储方式不同(由于浮点数等固有的舍入误差)。
当我乘以0.2,我得到这个数字。

我知道这是因为使用了浮点,但为什么它会显示这么多数字,而不仅仅是2,即11.99,就像第一个选择显示59.95(虽然59.95000002322存储了一些内容)?

请查看手册的章节和。@VMai:感谢链接。我会读的。请在OP中查看我的更新