unsigned
unsigned
整型的每一種都分為:無符號(unsigned)和有符號(signed)兩種類型(float和double總是帶符號的),在除char以外的數據類型中,默認情況下聲明的整型變數都是有符號的類型;char在默認情況下總是無符號的。在除char以外的數據類型中,如果需聲明無符號類型的話就需要在類型前加上unsigned。無符號版本和有符號版本的區別就是無符號類型能保存2倍於有符號類型的正整數數據,比如16位系統中一個short能存儲的數據的範圍為-32768~32767,而unsigned能存儲的數據範圍則是0~65535。由於在計算機中,整數是以補碼形式存放的。根據最高位的不同,如果是1,有符號數的話就是負數;如果是無符號數,則都解釋為正數。另外,unsigned若省略后一個關鍵字,大多數編譯器都會認為是unsignedint。
目錄
在sql語句中的意義
sql語句中,創建一個數據表時
ceatetableuser{user_idintunsigned}
當中的unsigned表示,數據項user_id恆為正整數。
例如如果tinyint最大是127,那tinyintunsigned最大就可以到127*2
unsigned屬性只針對整型,而binary屬性只用於char和varchar。
類型 | 說明 |
tinyint | 非常小的整數 |
smallint | 較小整數 |
mediumint | 中等大小整數 |
int | 標準整數 |
bigint | 較大整數 |
float | 單精度浮點數 |
double | 雙精度浮點數 |
decimal | 一個串的浮點數 |
每種數值類型的名稱和取值範圍如下表所示
類型說明 | 取值範圍 |
tinyint[(m)] | 有符號值:-128到127(-2到2-1) 無符號值:0到255(0到2-1)1個位元組 |
smallint[(m)] | 有符號值:-32768到32767(-2到2-1) 無符號值:0到65535(0到2-1)2個位元組 |
mediumint[(m)] | 有符號值:-8388608到8388607(-2到2-1) 無符號值:0到16777215(0到224-1)3個位元組 |
int[(m)] | 有符號值:-2147683648到2147683647(-2到2-1) 無符號值:0到4294967295(0到2-1)4個位元組 |
bigint[(m)] | 有符號值:-9223372036854775808到9223373036854775807(-2到2-1) 無符號值:0到18446744073709551615(0到2–1)8個位元組 |
float[(m,d)] | 最小非零值:±1.175494351e-38 |
double[(m,d)] | 最小非零值:±2.2250738585072014e-308 |
decimal(m,d) | 可變;其值的範圍依賴於m和d |