MySQL unsigned屬性

wolfreturn發表於2016-02-25
整數型別有可選的UNSIGNED屬性,表示不充許負值,這大致上可以使正數的上限提高一倍
可以使用這幾種整數型別:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT。分別使用8,16,24,32,64位儲存空間
它們可以儲存的值的範圍從-2(n-1)到2(n-1)-1,其中n是儲存空間的位數。
如建立如下表

點選(此處)摺疊或開啟

  1. CREATE TABLE `guo` (
  2.   `id` int(1) DEFAULT NULL,
  3.   `qq` int(1) unsigned DEFAULT NULL
  4. ) ENGINE=InnoDB DEFAULT CHARSET=utf8
id為未指定unsigned,而qq為指定unsigned
先對qq列插入資料
根據計算得2(n-1)-1為2147483647

插入成功

插入2147483648則提示超出範圍
下面對unsigned列進行插入,範圍應該為
2(n-1)+2(n-1)-1為4294967295

4294967296則報超出範圍

注意int型別定義的全為int(1)


MySQL可以為整數指定寬度,例如int(11),對大多數應用這是沒有意義的:它不會限制值的合法範圍,只是規定了MySQL的一些互動工具(例如MySQL命令列客戶端)用來顯示字元的個數。對於儲存和計算來說,int(1)和int(20)是相同的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24742969/viewspace-1994412/,如需轉載,請註明出處,否則將追究法律責任。

相關文章