unsigned 是在 MySQL 中用來設定數值只能是正的屬性,比如 tinyint 原本的範圍是 -128~128,加了 unsigned 的屬性後,範圍就會變成從 0~255 這樣,對於一些欄位如果確定不會有負數,可以設定這個屬性增加資料長度。

不過注意 unsigned 只能針對整數,以下是該類在是否有 unsigned 的長度差別。

型態

空間
需求

範圍

TINYINT[(M)]

1 byte

Signed: -128 to 127 (-27 to 27-1)
Unsigned: 0 to 255 (0 to 28-1)

SMALLINT[(M)]

2 bytes

Signed: -32768 to 32767 (-215 to 215-1)
Unsigned: 0 to 65535 (0 to 216-1)

MEDIUNINT[(M)]

3 bytes

Signed: -8388608 to 8388607 (-223 to 223-1)
Unsigned: 0 to 16777215 (0 to 224-1)

INT[(M)]
INTEGER[(M)]

4 bytes

Signed: -2147483648 to 2147483647 (-231 to 231-1)
Unsigned: 0 to 4294967295 (0 to 232-1)