MySQL學習筆記_關於MySQL的整數類型字段長度知識總結
下表顯示MySQL整數類型的存儲和范圍:
MySQL還支持選擇在該類型關鍵字後面的括號內指定整數值的顯示寬度(例如,INT(4))。該可選顯示寬度規定用於顯示寬度小於指定的列寬度的值時從左側填滿寬度。(類似使用LPAD函數效果)
在INT(M) 中, M指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與存儲大小或類型包含的值的范圍無關.如果為一個數值列指定ZEROFILL,MySQL自動為該列添加UNSIGNED屬性.
顯示寬度並不限制可以在列內保存的值的范圍,也不限制超過列的指定寬度的值的顯示。
當結合可選擴展屬性ZEROFILL使用時, 默認補充的空格用零代替。例如,對於聲明為INT(5) ZEROFILL的列,值4檢索為00004。請注意如果在整數列保存超過顯示寬度的一個值,當MySQL為復雜聯接生成臨時表時會遇到問題,因為在這些情況下MySQL相信數據適合原列寬度。
[以上內容摘自MySQL官方中文翻譯文檔]
以下是測試ZEROFILL屬性補充零的實例:
1.首先通過語句創建測試表
CREATE TABLE `test_intzerofill` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cash_id` int(6) unsigned zerofill NOT NULL,
PRIMARY KEY (`id`) www.2cto.com
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
如果使用Navicat 工具可視化創建表,如下圖所示,選中“填充零”即可.(保存時會自動將“無符號”勾選上)。
2.添加測試數據
INSERT INTO test_intzerofill VALUES ('1', '1');
INSERT INTO test_intzerofill VALUES ('2', '22');
INSERT INTO test_intzerofill VALUES ('3', '333');
INSERT INTO test_intzerofill VALUES ('4', '123456789');
INSERT INTO test_intzerofill VALUES ('5', '1234567890');
3.在Navicat 工具中查看表記錄時,工具會自動把補充的零去掉。
但通過MySQL自帶的客戶端工具“MySQL 5.5 Command Line Client” 查詢時,則會把補充的零顯示出來(如下面的右圖所示)。
4.相應的在Java程序中則需要把其轉換成字符串類型才可將其補充的零顯示出來。
5.使用Navicat工具將表數據導出時,補充的零也會被帶上。
附:使用LPAD函數示例:
作者 一片相思林