mysql中unsigned的用法理解

  • unsigned 是MYSQL自定义的类型,非标准SQL。用途1是起到约束数值的作用,2是可以增加数值范围(相当于把负数那部分加到正数上)。不过少用,不方便移植。

  • unsigned 为“无符号”的意思
    unsigned 既为非负数,用此类型可以增加数据长度!
    例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2
    unsigned 属性只针对整型,而binary属性只用于char 和varchar。
    UNSIGNED 可用来约束数据的范围,例如有些年龄这种值一般能是负数,那么就可以设置一个 UNSIGNED ,这样可以不允许负数插入

看起来这是一个不错的属性选项,特别是对于主键是自增长的类型,因为一般来说,用户都希望主键是非负数。然而在实际使用中,UNSIGNED可能会带来一些负面的影响:计算可能会出现非预期结果:

select a-b from table1;

但预期结果是负数时,则实际结果可能是个很大的值,甚至sql执行报错

当(a-b)在where子句后时也会出现相同的情况

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值