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

淺談Mysql?tinyint(1)與tinyint(4)的區(qū)別

 更新時(shí)間:2023年03月20日 16:43:02   作者:尖子塔  
本文主要介紹了淺談Mysql?tinyint(1)與tinyint(4)的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

引言

借由本篇文章來(lái)探討下在Mysql數(shù)據(jù)庫(kù)中數(shù)值類(lèi)型tinyint(1)tinyint(4) 有啥區(qū)別呢?

什么是tinyint(M)?

先來(lái)了解下mysql中字符串類(lèi)型varchar(M) 和數(shù)值類(lèi)型tinyint(M) 的區(qū)別?
字符串列類(lèi)型: varchar(M) 而言,M 是字段中可以存儲(chǔ)的最大字符長(zhǎng)度,也就是說(shuō)是字段長(zhǎng)度。根據(jù)設(shè)置,當(dāng)你插入超出字段長(zhǎng)度的數(shù)據(jù)時(shí),你很可能會(huì)收到錯(cuò)誤提示,即使沒(méi)有收到錯(cuò)誤提示,你插入的數(shù)據(jù)也會(huì)被自動(dòng)截?cái)嘁赃m應(yīng)該字段的預(yù)定義長(zhǎng)度。所以,varchar(20) 和 varchar(40) 是不同的,其真實(shí)反映了該字段可以存儲(chǔ)的數(shù)據(jù)長(zhǎng)度。
數(shù)值列類(lèi)型:其長(zhǎng)度修飾符表示最大顯示寬度,與該字段物理存儲(chǔ)沒(méi)有任何關(guān)系。也就是說(shuō),tinyint(1) 和 tinyint(4) 能夠存儲(chǔ)的數(shù)值范圍都是-128…127 (or for unsigned values 0…255),他們是相同的數(shù)據(jù)類(lèi)型,當(dāng)然他們還是有一點(diǎn)差異,以下會(huì)有說(shuō)明。
對(duì)于 tinyint 數(shù)據(jù)類(lèi)型,只占 1 個(gè)字節(jié)

- 無(wú)符號(hào)的(unsigned),范圍是 0 到 255,默認(rèn)長(zhǎng)度是 3。
- 有符號(hào)的(signed),范圍是 -128 到 127,默認(rèn)長(zhǎng)度是 4。

范圍算法:tinyint占1個(gè)字節(jié),一個(gè)字節(jié) 8 位,也就是1*8=8,可以表示的數(shù)字個(gè)數(shù)是 2的 8 次方(2^8 = 256個(gè)數(shù)字)。

區(qū)別:若使用了 zerofill,當(dāng)實(shí)際長(zhǎng)度達(dá)不到指定的顯示長(zhǎng)度時(shí),就會(huì)用 0 在前面補(bǔ)齊。(簡(jiǎn)記zerofill作用就是補(bǔ)零)

測(cè)試

先創(chuàng)建一張測(cè)試表,對(duì) tinyint 類(lèi)型都使用 zerofill。

CREATE TABLE `pre_demo` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `unsigned_t` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
  `signed_t` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000',
  `t1` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
  `t2` tinyint(2) unsigned zerofill NOT NULL DEFAULT '00',
  `t3` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
  `t4` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000',
  `t5` tinyint(5) unsigned zerofill NOT NULL DEFAULT '00000',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

然后,插入測(cè)試數(shù)據(jù)。

NSERT INTO pre_demo VALUES(NULL,8,8,8,8,8,8,8);
INSERT INTO pre_demo VALUES(NULL,123,123,123,123,123,123,123);

最后,查詢(xún)數(shù)據(jù)表中的數(shù)據(jù)。

mysql> SELECT * FROM pre_demo;
+----+------------+----------+-----+-----+-----+------+-------+
| id | unsigned_t | signed_t | t1  | t2  | t3  | t4   | t5    |
+----+------------+----------+-----+-----+-----+------+-------+
|  1 |        008 |     0008 |   8 |  08 | 008 | 0008 | 00008 |
|  2 |        123 |     0123 | 123 | 123 | 123 | 0123 | 00123 |
+----+------------+----------+-----+-----+-----+------+-------+
2 rows in set (0.00 sec)
mysql> SELECT *,LENGTH(id),LENGTH(unsigned_t),LENGTH(t1) FROM pre_demo;
+----+------------+----------+-----+-----+-----+------+-------+------------+--------------------+------------+
| id | unsigned_t | signed_t | t1  | t2  | t3  | t4   | t5    | LENGTH(id) | LENGTH(unsigned_t) | LENGTH(t1) |
+----+------------+----------+-----+-----+-----+------+-------+------------+--------------------+------------+
|  1 |        008 |     0008 |   8 |  08 | 008 | 0008 | 00008 |          1 |                  3 |          1 |
|  2 |        123 |     0123 | 123 | 123 | 123 | 0123 | 00123 |          1 |                  3 |          3 |
+----+------------+----------+-----+-----+-----+------+-------+------------+--------------------+------------+
2 rows in set (0.00 sec)

總結(jié)

  • tinyint(1) 與 tinyint(4) 能夠存儲(chǔ)的數(shù)據(jù)范圍是一樣的,都是 0 到 255(無(wú)符號(hào)的)。區(qū)別在于,當(dāng)使用 zerofill 時(shí),查詢(xún)結(jié)果顯示的長(zhǎng)度可能不同。
  • zerofill 和 指定長(zhǎng)度配合使用,可用于統(tǒng)一數(shù)據(jù)的顯示長(zhǎng)度,比如在數(shù)據(jù)庫(kù)層面快速生成統(tǒng)一長(zhǎng)度的流水號(hào)。
  • 一般情況下,無(wú)須刻意指定整型數(shù)據(jù)類(lèi)型的長(zhǎng)度。使用 MySQL 的默認(rèn)長(zhǎng)度tinyint(4) 即可。

參考文獻(xiàn)

http://blog.darkmi.com/2016/06/24/3110.html

https://blog.csdn.net/lamp_yang_3533/article/details/100061678

到此這篇關(guān)于淺談Mysql tinyint(1)與tinyint(4)的區(qū)別的文章就介紹到這了,更多相關(guān)Mysql tinyint(1)與tinyint(4)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)處理梳理講解增刪改的操作

    MySQL數(shù)據(jù)處理梳理講解增刪改的操作

    本篇文章旨在介紹如何使用數(shù)據(jù)處理函數(shù),和其他大多數(shù)計(jì)算機(jī)語(yǔ)言語(yǔ)言,MYSQL支持利用函數(shù)來(lái)處理數(shù)據(jù),函數(shù)也就是一般在數(shù)據(jù)上執(zhí)行,它給數(shù)據(jù)的轉(zhuǎn)換和處理提供了方便
    2022-05-05
  • 詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理

    詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理

    這篇文章主要介紹了詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-04-04
  • MySQL獲取版本號(hào)的N種方法(全網(wǎng)最全以及避坑大全)

    MySQL獲取版本號(hào)的N種方法(全網(wǎng)最全以及避坑大全)

    相信大家在工作學(xué)習(xí)中經(jīng)常有需要查詢(xún) MySQL 數(shù)據(jù)庫(kù)版本的情況,這里給大家介紹幾種在 MySQL 中查詢(xún)數(shù)據(jù)庫(kù)版本的方法以及每種方法適用的場(chǎng)景,相信總有一種可以幫到你,需要的朋友可以參考下
    2024-10-10
  • 快速解決mysql導(dǎo)出scv文件亂碼、躥行的問(wèn)題

    快速解決mysql導(dǎo)出scv文件亂碼、躥行的問(wèn)題

    這篇文章主要介紹了快速解決mysql導(dǎo)出scv文件亂碼、躥行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Mysql Update批量更新的幾種方式

    Mysql Update批量更新的幾種方式

    今天小編就為大家分享一篇關(guān)于Mysql Update批量更新的幾種方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • MySQL?開(kāi)窗函數(shù)

    MySQL?開(kāi)窗函數(shù)

    這篇文章主要介紹了MySQL?開(kāi)窗函數(shù)
    2022-02-02
  • 一步步教你在Navicat上如何停止正在運(yùn)行的MYSQL語(yǔ)句

    一步步教你在Navicat上如何停止正在運(yùn)行的MYSQL語(yǔ)句

    很多時(shí)候我們會(huì)提交一些耗時(shí)比較長(zhǎng)的sql,可能出現(xiàn)mysql服務(wù)器內(nèi)存或者CPU暴增,引起報(bào)警,甚至影響其他業(yè)務(wù),下面這篇文章主要給大家介紹了關(guān)于在Navicat上如何停止正在運(yùn)行的MYSQL語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • mysql?sql_mode數(shù)據(jù)驗(yàn)證檢查方法

    mysql?sql_mode數(shù)據(jù)驗(yàn)證檢查方法

    sql_mode?會(huì)影響MySQL支持的sql語(yǔ)法以及執(zhí)行的數(shù)據(jù)驗(yàn)證檢查,通過(guò)設(shè)置sql_mode?,可以完成不同嚴(yán)格程度的數(shù)據(jù)校驗(yàn),有效地保障數(shù)據(jù)準(zhǔn)確性,這篇文章主要介紹了mysql?sql_mode數(shù)據(jù)驗(yàn)證檢查,需要的朋友可以參考下
    2023-08-08
  • mysql自動(dòng)停止 Plugin FEDERATED is disabled 的完美解決方法

    mysql自動(dòng)停止 Plugin FEDERATED is disabled 的完美解決方法

    今天在配置服務(wù)器的時(shí)候,發(fā)現(xiàn)mysql的一個(gè)錯(cuò)誤提示在 本地計(jì)算機(jī) 無(wú)法啟動(dòng) MySQL 服務(wù)。錯(cuò)誤 1067: 進(jìn)程意外終止,其實(shí)原因很多這個(gè)不是導(dǎo)致進(jìn)程意外終止的最終原因,但可以解決
    2016-04-04
  • 細(xì)說(shuō)mysql replace into用法

    細(xì)說(shuō)mysql replace into用法

    這篇文章主要介紹了細(xì)說(shuō)mysql replace into,需要的朋友可以參考下
    2021-03-03

最新評(píng)論