MySQL中的`unsigned`是啥意思以及何时使用它?

Posted

技术标签:

【中文标题】MySQL中的`unsigned`是啥意思以及何时使用它?【英文标题】:What does `unsigned` in MySQL mean and when to use it?MySQL中的`unsigned`是什么意思以及何时使用它? 【发布时间】:2011-04-23 04:20:37 【问题描述】:

“未签名”在 mysql 中是什么意思,我应该什么时候使用它?

【问题讨论】:

【参考方案1】:

MySQL 说:

所有整数类型都可以有一个可选的 (非标准)属性 UNSIGNED。 无符号类型可用于允许 列中只有非负数当您需要更大的鞋面时 列的数值范围。为了 例如,如果一个 INT 列是 UNSIGNED, 列范围的大小是 相同,但它的端点从 -2147483648 和 2147483647 最高为 0 和 4294967295。

什么时候使用?

问自己这个问题:这个字段是否会包含负值? 如果答案是否定的,那么您需要 UNSIGNED 数据类型。

一个常见的错误是使用从 开始的自动递增 INT 的主键,但类型是 SIGNED,在这种情况下,您将永远不会触及任何负数,您将可能的 id 范围减少到一半。

【讨论】:

表示事物“大小”的值,例如订单中特定商品的数量,或两个位置之间的距离,通常是无符号的 很好的答案,mysql 在自动递增身份时不会默认整数为无符号似乎很奇怪? 如果您想要更清晰的答案,请查看***.com/a/11515613/6335029 @wired00 也许部分原因是UNSIGNED 是一个非标准的 MySQL 功能。 是的,假设您的 ID 为负数

以上是关于MySQL中的`unsigned`是啥意思以及何时使用它?的主要内容,如果未能解决你的问题,请参考以下文章

unsigned int是啥意思

C语言中的unsigned int是啥

C++11 中的“return ”语句是啥意思?

unsigned char 与 char 有啥却别?何时适用

电子邮件标题中的特殊字符是啥以及何时使用引号?

NSUInteger vs NSInteger,int vs unsigned,以及类似情况