有符号的范围是 -2147483648 到 2147483647. 无符号的范围 是 0 到 4294967295.
无符号整型(unsigned int): 取值是 2^31 - 1,即:0~4294967295
有符号整型((signed)int)(1)int类型: 默认是有符号的,所以int实际上是signed int ,我们通常省略signed,它的取值范围就与无符号整型不同了。它的范围是-2147483648~2147483647这个范围可以理解为无符号整型的一半变成了负数。
有无符号的根本原因可以说就是因为数据出现了溢出现象导致的。
无符号值可以避免误存负数, 且扩大了表示范围。
mysql提供了五种整型: tinyint、smallint、mediumint、int和bigint。int为integer的缩写。这些类型在可表示的取值范围上是不同的。 整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。
mysql 提供三种浮点类型: float、double和decimal。与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大 值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。
这要看字段类型是如何定义的,默认的情况下是有分符号的,但是也可以强制定义为不分符号。例如CREATE TABLE test1 (
`id` int(11) NOT NULL AUTO_INCREMENT,
`col1` float DEFAULT NULL,
PRIMARY KEY (`id`)
字段col1被定义为有符号的浮点数
CREATE TABLE test2 (
`id` int AUTO_INCREMENT PRIMARY key,
`col1` float UNSIGNED)
字段col1被定义为无符号的浮点数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)