1. 程式人生 > >MYSQL INT(N)以及zerofill的使用區別

MYSQL INT(N)以及zerofill的使用區別

src alt 個數 set 寬度 value 完成 補齊 一個數

MYSQL中,int(n)括號裏面的數據n無論寫成多少,都是占4個字節的空間,最多能夠存10位數。N不代表能夠存多少位數,顯示寬度M與數據所占用空間,數值的範圍無關。 如果在定義字段的時候指定zerofill,那麽當數值的顯示寬度小於指定的列寬度時候,則默認補充的空格用0代替,例如定義了zerofill,int(4)中的4就有意義了,我們插入一個數1,他會補充完成0001,int(10)則為0000000001。

測試如下:

1、創建一張int(4)的測試表

mysql> create table t1(id int(4));
Query OK, 0 rows affected (0.08 sec)

mysql> insert into t1 values(1);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t1 values(2);
Query OK, 1 row affected (0.02 sec)

mysql> insert into t1 values(2);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+------+
| id |
+------+
| 1 |
| 2 |
| 2 |
+------+
3 rows in set (0.00 sec)

技術分享圖片

2、創建一張int(10)的測試表

mysql> create table t2(id int(10));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t2 values(1);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t2 values(2);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t2 values(3);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t2;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)

技術分享圖片

3、創建一張int(4) zerofill的測試表

mysql> create table t3(id int(4) zerofill);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t3 values(1);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t3 values(2);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t3 values(3);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t3;
+------+
| id |
+------+
| 0001 |
| 0002 |
| 0003 |
+------+
3 rows in set (0.00 sec)

技術分享圖片

自動補齊前面的0。

4、創建一張int(10) zerofill的測試表

mysql> create table t4(id int(10) zerofill);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t4 values(1);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t4 values(2);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t4 values(3);
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM t4;
+------------+
| id |
+------------+
| 0000000001 |
| 0000000002 |
| 0000000003 |
+------------+
3 rows in set (0.00 sec)

技術分享圖片

MYSQL INT(N)以及zerofill的使用區別