linux mysql UNSIGNED,关于mysql:MySqlint10-与-int-unsigned-之前的区别
先理解一下兩者都代表什么意思
int(10)
給 int 類型設置字節長度為 10,int 類型默認的值范疇大小是:-2147483648和2147483647。
unsigned
設置 int 類型不能為正數。
創立 MySql 表進行演示
創立 test-in 演示 int(10)
CREATE TABLE `test-in` (
`id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
向 test-in 表中插入數據。
insert into `test-in` values(2147483647);
insert into `test-in` values(-2147483648);
查看表中數據。
嘗試一下,在這兩個區間之外進行插入數據,是否能夠勝利插入。
下面圖中能夠看到兩條 Sql 均都報出異樣,插入的值超出了范疇,沒方法進行插入數據,只能在 int 范疇區間內進行數據插入。
創立 test-un 演示 int unsigned
CREATE TABLE `test-un` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
創立后查問一下 sql
在 sql 語句中,我并沒有指定 int 類型的字節長度,執行完 sql 當前,unsigned 會默認設置 int 字節長度為 10。
上述中說過應用 unsigned 屬性是沒方法向表中插入正數的,這里嘗試一下
能夠看到圖中提醒插入的值超出了范疇,因為 unsigned 屬性的限度,咱們沒有方法插入正數。
測試超過 int 默認的整數最大值插入
上圖中插入勝利了,闡明在應用 unsigned 屬性時,將默認 int 類型的取值范疇調整了。
調整后的 int 取值范疇
intMaxValue = 2147483648 + 2147483647 = 4294967295
測試一下是否真的能夠插入 4294967295 到數據庫中
答案是能夠的。
區別總結
默認的 int 類型,取值范疇是 -2147483648-2147483647 之間,而 unsigned 的取值范疇是 0-4294967295 之間。
默認的 int 類型,容許插入正數,unsigned 設置后,無奈插入正數。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的linux mysql UNSIGNED,关于mysql:MySqlint10-与-int-unsigned-之前的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 8051 编译,[编译] 3
- 下一篇: mysql每秒57000_MySQL 性