欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中int(n)后面的n到底代表的是什么意思

 更新時間:2020年11月19日 10:54:13   作者:極客小俊GeekerJun  
這篇文章主要介紹了MySQL中int(n)后面的n到底代表的是什么意思 ,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

你可能已經(jīng)知道int(1)這個長度1并不代表允許存儲的寬度!

但對這個長度很多人也沒有真正研究過到底代表什么,今天我就來簡單的分析一下!

先看一個簡單的建表小案例:

create table test(
 id int(11) unsigned NOT NULL AUTO_INCREMENT,
 uid int(3) NOT NULL,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

這里以uid字段為例,我們這里設(shè)置的是int(3)

那么問題來了 難道我們設(shè)置int(3),就不能存放數(shù)據(jù)1234了?

那么你完全可以測試一下 輸入如下SQL語句

insert into `test` (`uid`) VALUES(1234);
insert into `test` (`uid`) VALUES(12345678);

結(jié)果圖如下:

小伙伴們通過上面的SQL語句可以發(fā)現(xiàn) 成功把數(shù)據(jù)1234插入, 并且我們還可以插入存放更多位的數(shù)據(jù)! 這是為什么呢? 看下面

原因如下:

這個int(n)我們可以簡單的理解為:

這個長度是為了告訴MySQL數(shù)據(jù)庫,我們這個字段的存儲的數(shù)據(jù)的寬度為n位數(shù), 當(dāng)然如果你不是存儲的n位數(shù), 但是(只要在該類型的存儲范圍之內(nèi))MySQL也能正常存儲!

那么我們可以從新來建立test2表, 然后這一次我們把uid字段加上:  unsigned 和 zerofill  這兩個字段約束

==字段約束會在后面詳細(xì)講到==

MySQL代碼如下:

create table test2(
 id int(11) unsigned NOT NULL AUTO_INCREMENT,
 uid int(3) unsigned zerofill NOT NULL,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

現(xiàn)在我的uid字段:長度(n)=3, 字段約束=unsigned 和 zerofill   備: (無符號約束 和 用0來填充位數(shù)約束)

設(shè)置這個約束的字段后,再往表時插入數(shù)據(jù),系統(tǒng)會自動把uid字段不夠3位的在左側(cè)用0來填充

小伙伴完全可以測試一下代碼:  向uid字段插入一個33的數(shù)字

insert into `test2` (`uid`) VALUES(33);

結(jié)果圖 如下:

大家是不是驚奇的發(fā)現(xiàn)不足長度3的時候, 真的用0來 從左邊開始填充!  哈哈哈

所以:現(xiàn)在我們應(yīng)該清楚的知道,int后的長度n 與你存放的數(shù)值型的數(shù)的大小無關(guān)!

==小結(jié):== 

在定義表字段數(shù)據(jù)類型為int類型的時候,后面的長度n所代表的長度是沒有任何意義的, 只要在該類型的存儲范圍之內(nèi)MySQL也能正常存儲!  如果一定要左側(cè)補0 那么這個字段必須要有zerofill約束和unsigned 無符號約束!

到此這篇關(guān)于MySQL中int(n)后面的n到底代表的是什么意思 的文章就介紹到這了,更多相關(guān)MySQL int(n)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)庫之聯(lián)合查詢?union

    MySQL數(shù)據(jù)庫之聯(lián)合查詢?union

    這篇文章主要介紹了MySQL數(shù)據(jù)庫之聯(lián)合查詢?union,聯(lián)合查詢就是將多個查詢結(jié)果的結(jié)果集合并到一起,字段數(shù)不變,多個查詢結(jié)果的記錄數(shù)合并,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-06-06
  • mysql中取字符串中的數(shù)字的語句

    mysql中取字符串中的數(shù)字的語句

    在很多時間我們需要把字符串的數(shù)字給取出來,通常大家會用php,asp等這類來操作,本文章介紹了在sql中取字符中的數(shù)字辦法,有需要的朋友可以參考一下
    2012-04-04
  • mysql數(shù)據(jù)損壞,如何通過ibd和frm文件批量恢復(fù)數(shù)據(jù)庫數(shù)據(jù)

    mysql數(shù)據(jù)損壞,如何通過ibd和frm文件批量恢復(fù)數(shù)據(jù)庫數(shù)據(jù)

    這篇文章主要介紹了mysql數(shù)據(jù)損壞,如何通過ibd和frm文件批量恢復(fù)數(shù)據(jù)庫數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL的主從復(fù)制原理詳細(xì)分析

    MySQL的主從復(fù)制原理詳細(xì)分析

    這篇文章主要介紹了MySQL的主從復(fù)制原理詳細(xì)分析,讀寫分離是基于主從復(fù)制來實現(xiàn)的。文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • 實操MySQL+PostgreSQL批量插入更新insertOrUpdate

    實操MySQL+PostgreSQL批量插入更新insertOrUpdate

    這篇文章主要介紹了MYsql和PostgreSQL優(yōu)勢對比以及如何實現(xiàn)MySQL + PostgreSQL批量插入更新insertOrUpdate,附含詳細(xì)的InserOrupdate代碼實例,需要的朋友可以參考下
    2021-08-08
  • 詳解讓MySQL和Redis數(shù)據(jù)保持一致的四種策略

    詳解讓MySQL和Redis數(shù)據(jù)保持一致的四種策略

    在分布式系統(tǒng)中,保證Redis和MySQL之間的數(shù)據(jù)一致性是一個復(fù)雜且重要的問題,下面這篇文章主要給大家介紹了關(guān)于讓MySQL和Redis數(shù)據(jù)保持一致的四種策略,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • 最新評論