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

Mysql中int(1)、int(20)的區(qū)別小結(jié)

 更新時間:2025年03月04日 10:50:39   作者:李若盛開  
本文主要介紹了Mysql中int(1)、int(20)的區(qū)別小結(jié),int后的數(shù)字表示最大顯示寬度,一般int后面的數(shù)字M要配合zerofill一起使用才有效,下面就來具體介紹一下,感興趣的可以了解一下

在設(shè)計數(shù)據(jù)庫表的時候,經(jīng)常需要設(shè)計一個id字段,它的類型一般都是整型int,經(jīng)常會遇到int(1)、int(20)等。

int的范圍:
有符號的整型范圍是-2147483648~2147483647
無符號的整型范圍是0~4294967295

參看 MySQL 手冊,int(M): M indicates the maximum display width for integer types.
int(M)只是用來顯示數(shù)據(jù)的寬度,在 integer 數(shù)據(jù)類型中,M 表示最大顯示寬度,一般int后面的數(shù)字M要配合zerofill一起使用才有效。

數(shù)據(jù)準(zhǔn)備

創(chuàng)建測試表 test_table,包含兩個測試字段area_1 int(1)、area_2 int(20):

CREATE TABLE `test_table` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `area_1` int(1) unsigned DEFAULT NULL,
  `area_2` int(20) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

存儲大小

在 MySQL 中 int 類型占4個字節(jié),對于無符號整形最大值為:2^32-1 = 4294967295,下面看看int(1)、int(20)分別可以存儲 int 類型最大值?

INSERT INTO `test_table` (`area_1`, `area_2`) VALUES (4294967295, 4294967295)
> Affected rows: 1
> 查詢時間: 0.002s

插入成功,int(1)、int(20) 都可以存儲 int 類型最大值,說明對存儲大小無影響。那么1和20用什么作用呢?答案就是對齊填充,當(dāng)聯(lián)合零填充(zerofill) 使用時,配置的值才會體現(xiàn)效果。

零填充(zerofill,一般int后面的數(shù)字要配合zerofill一起使用才有效)

所謂零填充就是當(dāng)數(shù)字位小于指定位數(shù)時,使用0填充補(bǔ)全位數(shù),比如指定位數(shù)為4位,數(shù)為23,那么實際會被填充為 0023。

將 area_1 和 area_2 字段配置為 zerofill

CREATE TABLE `test_table` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `area_1` int(1) unsigned <strong>zerofill</strong> DEFAULT NULL,
  `area_2` int(20) unsigned <strong>zerofill</strong> DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

可以看到 area_2 不足20位時使用0補(bǔ)齊到20位,area_1 指定位數(shù)為 1 位實際并沒有效果,因為數(shù)字至少為1位,對 NULL 不生效。

零填充(zerofill)在一些需要數(shù)字對齊的場景中可能使用,但實踐中并不推薦,對數(shù)據(jù)庫依賴性太強(qiáng)。

總結(jié)

int后面的數(shù)字不能表示字段的長度,int(num)一般加上zerofill,才有效果。

一般整型而言,對于int(1)、int(20) 中指定的位數(shù)并不會影響字段的存儲大小,而是和零填充(zerofill)聯(lián)合使用實現(xiàn)對齊填充,實際使用中沒有特殊對齊需求,配置為int(1)即可。

注意:零填充只針對于整型,字符串(char、varchar)的“長度”是會受到真正的限制。Char(n)、Varchar(n),括號里的N表示的是該字段可容納的最大字符數(shù),簡單來說就是能存入多少個字符,n的取值范圍為:0-255。

到此這篇關(guān)于Mysql中int(1)、int(20)的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Mysql int(1) int(20)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql轉(zhuǎn)PostgreSQL注意事項及說明

    Mysql轉(zhuǎn)PostgreSQL注意事項及說明

    這篇文章主要介紹了Mysql轉(zhuǎn)PostgreSQL注意事項及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-10-10
  • linux使用mysqldump+expect+crontab實現(xiàn)mysql周期冷備份思路詳解

    linux使用mysqldump+expect+crontab實現(xiàn)mysql周期冷備份思路詳解

    這篇文章主要介紹了linux使用mysqldump+expect+crontab實現(xiàn)mysql周期冷備份,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • MyBatis 動態(tài)SQL全面詳解

    MyBatis 動態(tài)SQL全面詳解

    MyBatis 的強(qiáng)大特性之一便是它的動態(tài) SQL。如果你有使用 JDBC 或其他類似框架的經(jīng)驗,你就能體會到根據(jù)不同條件拼接 SQL 語句有多么痛苦。拼接的時候要確保不能忘了必要的空格,還要注意省掉列名列表最后的逗號。利用動態(tài) SQL 這一特性可以徹底擺脫這種痛苦
    2021-09-09
  • MySQL數(shù)據(jù)庫定時備份的幾種實現(xiàn)方法

    MySQL數(shù)據(jù)庫定時備份的幾種實現(xiàn)方法

    本文主要介紹了MySQL數(shù)據(jù)庫定時備份的幾種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Python3.6-MySql中插入文件路徑,丟失反斜杠的解決方法

    Python3.6-MySql中插入文件路徑,丟失反斜杠的解決方法

    下面小編就為大家?guī)硪黄狿ython3.6-MySql中插入文件路徑,丟失反斜杠的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • MySQL單表恢復(fù)的步驟

    MySQL單表恢復(fù)的步驟

    這篇文章主要介紹了MySQL單表恢復(fù)的步驟,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • Mysql8報錯this is incompatible with sql_mode=only_full_group_by問題

    Mysql8報錯this is incompatible with sql_mo

    這篇文章主要介紹了Mysql8報錯this is incompatible with sql_mode=only_full_group_by問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • mysql日常鎖表之flush_tables詳解

    mysql日常鎖表之flush_tables詳解

    Flushtables和Flushtableswithreadlock是MySQL中的兩個命令,用于關(guān)閉表對象和清空查詢緩存,它們會等待所有正在運行的SQL請求執(zhí)行結(jié)束,如果請求操作的表集合為{tables},則會阻塞其他會話對{tables}表上的所有操作,包括查詢和寫操作
    2024-11-11
  • MySQL 實現(xiàn)lastInfdexOf的功能案例

    MySQL 實現(xiàn)lastInfdexOf的功能案例

    這篇文章主要介紹了MySQL 實現(xiàn)lastInfdexOf的功能案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 銀河麒麟V10安裝MySQL5.7的詳細(xì)過程

    銀河麒麟V10安裝MySQL5.7的詳細(xì)過程

    這篇文章主要介紹了銀河麒麟V10安裝MySQL5.7,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05

最新評論