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