linux mysql UNSIGNED,关于mysql:MySqlint10-与-int-unsigned-之前的区别

先理解一下两者都代表什么意思

int(10)

给 int 类型设置字节长度为 10,int 类型默认的值范畴大小是:-2147483648和2147483647。

unsigned

设置 int 类型不能为正数。

创立 MySql 表进行演示

创立 test-in 演示 int(10)

CREATE TABLE `test-in` (

`id` int(10) NOT NULL AUTO_INCREMENT,

PRIMARY KEY (`id`)

)

向 test-in 表中插入数据。

insert into `test-in` values(2147483647);

insert into `test-in` values(-2147483648);

查看表中数据。

尝试一下,在这两个区间之外进行插入数据,是否能够胜利插入。

下面图中能够看到两条 Sql 均都报出异样,插入的值超出了范畴,没方法进行插入数据,只能在 int 范畴区间内进行数据插入。

创立 test-un 演示 int unsigned

CREATE TABLE `test-un` (

`id` int unsigned NOT NULL AUTO_INCREMENT,

PRIMARY KEY (`id`)

)

创立后查问一下 sql

在 sql 语句中,我并没有指定 int 类型的字节长度,执行完 sql 当前,unsigned 会默认设置 int 字节长度为 10。

上述中说过应用 unsigned 属性是没方法向表中插入正数的,这里尝试一下

能够看到图中提醒插入的值超出了范畴,因为 unsigned 属性的限度,咱们没有方法插入正数。

测试超过 int 默认的整数最大值插入

上图中插入胜利了,阐明在应用 unsigned 属性时,将默认 int 类型的取值范畴调整了。

调整后的 int 取值范畴

intMaxValue = 2147483648 + 2147483647 = 4294967295

测试一下是否真的能够插入 4294967295 到数据库中

答案是能够的。

区别总结

默认的 int 类型,取值范畴是 -2147483648-2147483647 之间,而 unsigned 的取值范畴是 0-4294967295 之间。

默认的 int 类型,容许插入正数,unsigned 设置后,无奈插入正数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值