web-dev-qa-db-ja.com

MySQLの `unsigned`とはどういう意味ですか?いつ使うのですか?

MySQLで「符号なし」とはどういう意味ですか?いつ使用するべきですか?

250
HELP

MySQL と言っています:

すべての整数型は、オプションの(非標準の)属性UNSIGNEDを持つことができます。符号なしタイプは、列内の負でない数のみを許可するまたはより大きな上限数値範囲が必要な場合に使用できます。たとえば、INT列がUNSIGNEDの場合、列の範囲のサイズは同じですが、その端点は-2147483648と2147483647から0と4294967295までシフトします。

いつ使用しますか?

自分でこの質問をしてください。このフィールドに負の値が含まれることはありますか?
答えが「いいえ」の場合、UNSIGNEDデータ型が必要です。

よくある間違いは、zeroから始まる自動インクリメントINTである主キーを使用することですが、その型はSIGNEDです。可能なIDの範囲は半分です。

476
codaddict