mysql中int 1 與int 10 的區別

2021-09-26 19:28:35 字數 1657 閱讀 7032

int[(m)] [unsigned] [zerofill]

普通大小的整數。帶符號的範圍是-2147483648到2147483647。無符號的範圍是0到4294967295。

int(1) 和 int(10)本身沒有區別,但是加上(m)值後,會有顯示寬度的設定。

如**所示:

mysql> create table test(id int(3));

query ok, 0 rows affected (0.47 sec)

mysql> insert into test values(12);

query ok, 1 row affected (0.12 sec)

mysql> insert into test values(1234);

query ok, 1 row affected (0.10 sec)

mysql> select * from test;

+------+| id |+------+| 12 || 1234 |+------+

再試一下。這下咱們加上zerofill。

mysql> create table test1(id int(3) zerofill);

query ok, 0 rows affected (0.32 sec)

mysql> insert into test1 value(12);

query ok, 1 row affected (0.07 sec)

mysql> insert into test1 value(1234);

query ok, 1 row affected (0.05 sec)

mysql> select * from test1;

+------+| id |+------+| 012 || 1234 |+------+

這下注意12前面輸出多了個0,int(m) 的值多了個0,這就是顯示寬度的限制。而多出來的還會顯示出來。只是系統判定12顯示寬度不足,會補0來補全顯示寬度

但是要注意插入負數的時候:

沒有設定zerofill的時候負數正常顯示

mysql> insert into test value(-1234);

query ok, 1 row affected (0.07 sec)

mysql> select * from test;

+-------+| id |+-------+| 12 || 123 || -1234 |+-------+3 rows in set (0.00 sec)

咱再來看看設定 zerofill的時候:

mysql> insert into test1 value(-1234);

query ok, 1 row affected, 1 warning (0.11 sec)

mysql> select * from test1;

+------+| id |+------+| 012 || 1234 || 000 |+------+

輸出為000,插入是-1234 。顯示是000。

原來新增zerofill的時候系統會給自動新增上unsigned屬性。就是非負數。而設定的顯示寬度為3位。所以就會輸出000。

INT0及INT1中斷計數

名稱 int0及int1中斷計數 說明 每次按下第1個計數鍵時,第1組計數值累加並顯示在右邊3只數碼管上,每次按下第2個計數鍵時,第2組計數值累加並顯示在左邊3只數碼管上,後兩個按鍵分別清零。include define uchar unsigned char define uint unsigne...

Mysql中int 1 的誤解及相關介紹

在mysql中使用int相關的資料型別時,如果不太了解其儲存方式,會產生一些誤用的情況.如 只儲存0 9之間的數字,可能會直接用int 1 習慣性的以為int 1 就相當於varchar 1 一樣,其實不然.下面來說下int相關資料型別的一些簡單介紹 型別 位元組最小值 最大值tinyint 1 1...

Mysql的int(1)和int(M)的區別

mysql中我們建表的時候,型別可以用int 10 這是什麼意思呢?首先我們看 mysql的整型型別有這樣幾種 型別占用位元組 tinyint 1smallint 2mediumint 3int 4bigint 8這是決定儲存需要占用多少位元組,那麼後邊的數字 m 代表什麼意思呢?tinyint m...