簡單談?wù)凪ySQL中的int(m)
我們在設(shè)計(jì)表的時(shí)候,如果碰到需要設(shè)置int(整型)的時(shí)候,通常會(huì)按照慣例(大家都這樣寫)設(shè)置成int(11)。那么這里為什么是11呢?代表的又是什么呢?
以前我一直以為這里是在限制int顯示的寬度,后來仔細(xì)研究和通過上網(wǎng)查詢發(fā)現(xiàn),事實(shí)并不是那樣的。
確切的來說,這里的“寬度”只是一個(gè)“預(yù)期值”,它所代表的僅僅是你在設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)時(shí),想讓該列日后顯示的值寬度為多少,但是具體存入值的寬度多少不會(huì)受任何影響。
當(dāng)然,它的作用不僅如此,在存入數(shù)據(jù)的時(shí)候,還是有一定區(qū)別的,這一點(diǎn)可以通過設(shè)置字段的zerofill可以看出。比如這里我們創(chuàng)建一個(gè)數(shù)據(jù)表,結(jié)構(gòu)如下:
create table test ( num int(5) zerofill );
上面代碼創(chuàng)建一個(gè)名為test的表,結(jié)構(gòu)很簡單,表中只有一個(gè)名為num的字段,類型為int,寬度為5,為了看出寬度方便,我們又添加一個(gè)zerofill屬性(該屬性會(huì)讓存入數(shù)值在不足寬度情況下,左側(cè)補(bǔ)0)
然后我們開始插入數(shù)據(jù):
mysql> insert into test values(1),(11),(123),(12345),(123456),(1234567); Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0
打印結(jié)果:
mysql> select * from test; +---------+ | num | +---------+ | 00001 | | 00011 | | 00123 | | 12345 | | 123456 | | 1234567 | +---------+ 6 rows in set (0.00 sec)
由以上結(jié)果,不難看出,如果字符少于設(shè)置(期望值)寬度,在設(shè)置了zerofill屬性的情況下,左側(cè)會(huì)統(tǒng)統(tǒng)補(bǔ)0;但是如果超出則不受任何影響。也就是說這里的int(m)中m只是一個(gè)預(yù)期值,和真實(shí)數(shù)據(jù)寬度并沒多大關(guān)系。
相關(guān)文章
Mysql如何將數(shù)據(jù)按照年月分組的統(tǒng)計(jì)
這篇文章主要介紹了Mysql如何將數(shù)據(jù)按照年月分組的統(tǒng)計(jì)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
MySQL中的insert-on-duplicate語句舉例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中insert-on-duplicate語句的相關(guān)資料,文中通過圖文以及代碼示例將insert-on-duplicate的用法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-06-06
設(shè)置Mysql5.6允許外網(wǎng)訪問的詳細(xì)流程分享
今天小編就為大家分享一篇設(shè)置Mysql5.6允許外網(wǎng)訪問的詳細(xì)流程分享,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
微信公眾平臺(tái)開發(fā) 數(shù)據(jù)庫操作
這篇文章主要介紹了微信公眾平臺(tái)開發(fā) 數(shù)據(jù)庫操作的相關(guān)資料,需要的朋友可以參考下2016-10-10
一臺(tái)linux主機(jī)啟動(dòng)多個(gè)MySQL數(shù)據(jù)庫的方法
這篇文章主要介紹了一臺(tái)linux主機(jī)啟動(dòng)多個(gè)MySQL數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
CentOS7.2虛擬機(jī)上安裝MySQL 5.6.32的教程
這篇文章主要介紹了CentOS7.2虛擬機(jī)上安裝MySQL 5.6.32的教程的相關(guān)資料,需要的朋友可以參考下2016-08-08

