1.整形分為四種 tinyint smallint mediumint int bigint
注意:
右側的取值范圍是在未加unsigned關鍵字的情況下,如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值范圍為(0~256)。
項目出錯案例:
在做根據身份獲取城市的時候
發現大於127的region_id 就都取127得127( 東方市),一直找不到原因,原來是插入region_id的字段類型定義問題
定義為: tinyint(4) 最大127 若加上unsigned 則可增加到256 直接更改為 smallint(5) 最大值到32767 顯示成功!
表格一共有四列:
字段類型, 占用字節數, 允許存儲的最小值, 允許存儲的最大值
@1.創建表t
mysql> drop table if exists t; mysql> create table t(id int zerofill);
@2.插入數據
mysql> insert into t(id) values(10);
@3.顯示select * from t
@4.更改字段為int(3)
mysql>ALTER TABLE t CHANGE COLUMN id id INT(3) ZEROFILL;
顯示為:
@5.插入超過限定長度的值
mysql> mysql> insert into t(id) values(1000000);
從上面的測試可以看出:
(M) 指定了 int 型數值顯示的寬度,如果字段數據類型是 int(4),則:當顯示數值 10 時,在左邊要補上 “00”;
當顯示數值 100 是,在左邊要補上“0”;
當顯示數值 1000000 時,已經超過了指定寬度“(4)”,因此按原樣輸出。
這個M=4我們可以簡單的理解成為, 我們建立這個長度是為了告訴MYSQL數據庫我們這個字段的存儲的數據的寬度為4位數, 當然如果你不是5位數(只要在該類型的存儲范圍之內)MYSQL也能正常存儲.
定義時需要注意是否使用 unsigned 符號類型,再就是顯示補齊寬度值