整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。 它们的区别如下表所示: 2.2 可选属性 整数类型的可选属性有三个: M M : 表示显示宽度,M的取值范围是(0, 255)。例如,int(5):当数据宽度小于5位的时候在数字前面需要用 字符填满宽度。该项功能需要配合“ ZEROFILL ”
整型 tinyint,1字节 smallint,2字节 mediumint,3字节 int,4字节 bigint,8字节 默认是带符号的,可以加unsigned表示无符号。 int(n),n不是表示长度,不会影响存储,仅用于控制显示的宽度。 浮点型 float,4字节 double,8字节 double(m,d),m表示总长度,d表示小数位,超出四舍五入。 存在精度丢失问题,避免等值比较。
上面主要介绍了几种数字类型所占用的空间,以及signed和unsigned的最大值和最小值(计算方法:如果占用一个一节,表示2的8次方=256,后面以此类推)。 其中signed表示有符号(正负),unsigned表示无符号(只有正号,无负号)。这里根据建议选用signed,不建议使用unsigned。 自增整型类型做主键,务必使用类型 BIGINT,而非 INT,...
7 insert into test_tinyint values(255); 执行第7行的代码时候报错"Out of range value for column 'num' at row 1",即很清楚的我们可以看到插入的数字范围越界了,这也同样反映出MySQL中整型默认是带符号的。 把第3行的num字段定义改为"num tinyint unsigned"第7的插入就不会报错了,但是第6行的插入-100...
方法三:使用自定义函数生成随机bigint类型数据 除了使用内置函数,我们还可以自定义函数来生成随机bigint类型的数据。 首先,我们需要创建一个存储过程来生成随机整数。 DELIMITER$$CREATEPROCEDURErandom_integer(INmin_valueBIGINT,INmax_valueBIGINT,OUTresultBIGINT)BEGINSETresult=FLOOR(RAND()*(max_value-min_value+...
BIGINT:只有当你处理特别巨大的整数时才会用到。比如双十一的交易量、大型门户网站点击量、证券公司衍生产品持仓等。 2.4如何选择? 在评估用哪种整数类型的时候,你需要考虑存储空间和可靠性的平衡问题:一方 面,用占用字节数少的整数类型可以节省存储空间;另一方面,要是为了节省存储空间,使用的整数类型取值范围太小,一...
如果参与了运算,由于将 BIGINT 转换为 DOUBLE 时存在舍入错误,可能会导致结果中的最后几位数字出错。MySQL 会在以下情况中使用 BIGINT:使用整数类型存储 BIGINT 字段中的无符号大整数;针对 BIGINT 字段的 MIN() 或者 MAX() 函数;两个整数的算术运算(+、-、* 等);...
先写一段SQL创建表,utf8的编码格式:drop table if exists test_varchar;create table test_varchar (varchar_value varchar(100000)) engine=innodb charset=utf8;执行报错:Column length too big for column 'varchar_value' (max = 21845); use BLOB or TEXT instead按照提示,我们把大小改为21845,执行依然...
TypeStorage (Bytes)Minimum Value SignedMinimum Value UnsignedMaximum Value SignedMaximum Value Unsigned TINYINT1-1280127255 SMALLINT2-3276803276765535 MEDIUMINT3-83886080838860716777215 INT4-2147483648021474836474294967295 BIGINT8-2630263-1264-1 PREVHOMEUPNEXT...
3. UNSIGNED表示不允许负值,大致可以使正数的上限提高一倍。比如TINYINT存储范围是-128 ~ 127,而UNSIGNED TINYINT存储的范围却是0 - 255。4. 通常来讲,没有太大的必要使用DECIMAL数据类型。即使是在需要存储财务数据时,仍然可以使用BIGINT。比如需要精确到万分之一,那么可以将数据乘以一百万然后使用BIGINT存储。