MySQL中的"unsigned"是什么意思,什么时候使用它?

HEL*_*ELP 264 mysql types

MySQL中"unsigned"的含义是什么?我何时应该使用它?

cod*_*ict 495

MySQL说:

所有整数类型都可以具有可选(非标准)属性UNSIGNED.无符号类型可用于仅允许列中的非负数, 或者当您需要的较大上限数字范围时.例如,如果INT列为UNSIGNED,则列的范围大小相同,但其端点从-2147483648和2147483647更改为0和4294967295.

我什么时候使用它?

问自己这个问题:这个领域是否会包含负值
如果答案为否,那么您需要一种UNSIGNED数据类型.

一个常见的错误是使用一个主键是自动递增INT的起点为零,但类型是SIGNED,在这种情况下,你将永远不会触及任何负数的,你是减少可能的id范围的一半.

  • 很好的答案,看起来很奇怪mysql在自动递增身份时不会将整数默认为unsigned? (28认同)
  • 表示订单"尺寸"的值,例如订单上特定商品的数量,或两个地点之间的距离,通常是未签名的 (7认同)
  • 如果您想要更清晰的答案,请查看此/sf/answers/806092941/ (3认同)
  • @wired00 也许部分原因是“UNSIGNED”是一个非标准的 MySQL 功能。 (2认同)