最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL 數(shù)據(jù)類型之字符串、數(shù)字、日期詳解

 更新時(shí)間:2025年04月18日 11:15:26   作者:秋秋愛編碼  
MySQL 提供了多種數(shù)據(jù)類型,每種類型都有其適用場景,合理選擇數(shù)據(jù)類型可以提升存儲(chǔ)效率、優(yōu)化查詢性能,并避免精度損失,這篇文章主要介紹了MySQL數(shù)據(jù)類型詳解:字符串、數(shù)字、日期,需要的朋友可以參考下

MySQL 數(shù)據(jù)類型詳解:字符串、數(shù)字、日期

在 MySQL 中,選擇合適的數(shù)據(jù)類型對(duì)于數(shù)據(jù)庫的存儲(chǔ)效率查詢性能至關(guān)重要。MySQL 提供了**字符串(String)、數(shù)字(Numeric)和日期(Date & Time)**三大類數(shù)據(jù)類型,每種類型又有不同的子類型,以適應(yīng)不同的業(yè)務(wù)需求。

1. 字符串(String)數(shù)據(jù)類型

字符串類型用于存儲(chǔ)文本數(shù)據(jù),主要分為定長(CHAR)變長(VARCHAR),以及大文本(TEXT 和 BLOB)。

1.1 定長與變長字符串

數(shù)據(jù)類型存儲(chǔ)方式特點(diǎn)適用場景
CHAR(n)定長存儲(chǔ)(不足補(bǔ)空格)訪問速度快,占用空間固定適用于固定長度的數(shù)據(jù),如國家代碼、身份證號(hào)
VARCHAR(n)變長存儲(chǔ)(按需分配空間)節(jié)省存儲(chǔ)空間,但查詢時(shí)可能需要額外的存儲(chǔ)開銷適用于長度不固定的文本,如用戶昵稱、電子郵件

CHAR vs. VARCHAR

  • CHAR(10) 始終占用 10 個(gè)字節(jié)(不足補(bǔ)空格)。
  • VARCHAR(10) 只存儲(chǔ)實(shí)際字符,最多 10 個(gè)字節(jié),并額外占用 1-2 字節(jié)用于存儲(chǔ)長度信息。

一般來說:

  • 短小、長度固定的文本(如國家代碼、MD5 哈希)用 CHAR。
  • 長度不固定的文本(如姓名、地址)用 VARCHAR

1.2 TEXT 和 BLOB

當(dāng)存儲(chǔ)較長的文本或二進(jìn)制數(shù)據(jù)時(shí),使用 TEXT 和 BLOB 類型:

數(shù)據(jù)類型最大存儲(chǔ)大小是否區(qū)分大小寫適用場景
TINYTEXT255 字節(jié)? 區(qū)分大小寫短文本,如推文內(nèi)容
TEXT65,535 字節(jié)(64KB)? 區(qū)分大小寫文章內(nèi)容、評(píng)論
MEDIUMTEXT16,777,215 字節(jié)(16MB)? 區(qū)分大小寫書籍、日志記錄
LONGTEXT4GB? 區(qū)分大小寫超長文本,如百科條目
TINYBLOB255 字節(jié)? 不區(qū)分大小寫小二進(jìn)制數(shù)據(jù),如圖片縮略圖
BLOB64KB? 不區(qū)分大小寫圖片、音頻
MEDIUMBLOB16MB? 不區(qū)分大小寫大型媒體文件
LONGBLOB4GB? 不區(qū)分大小寫超大文件,如電影

TEXT vs. VARCHAR

  • TEXT 不支持 默認(rèn)值,也無法使用 索引(僅支持前綴索引),但可以存儲(chǔ)大量文本。
  • VARCHAR 可以索引整個(gè)字段,適用于需要頻繁搜索的文本字段。

2. 數(shù)字(Numeric)數(shù)據(jù)類型

數(shù)字類型用于存儲(chǔ)整數(shù)或小數(shù),主要分為整數(shù)類型浮點(diǎn)/定點(diǎn)類型。

2.1 整數(shù)類型

數(shù)據(jù)類型存儲(chǔ)大小取值范圍(無符號(hào))適用場景
TINYINT1 字節(jié)0 ~ 255布爾值(0/1)、評(píng)分
SMALLINT2 字節(jié)0 ~ 65,535小范圍數(shù)值,如年齡
MEDIUMINT3 字節(jié)0 ~ 16,777,215適用于 ID、自增字段
INT(INTEGER)4 字節(jié)0 ~ 4,294,967,295適用于大部分場景,如用戶 ID
BIGINT8 字節(jié)0 ~ 18,446,744,073,709,551,615適用于超大數(shù)值,如銀行賬戶余額

無符號(hào)(UNSIGNED) vs. 有符號(hào)

  • TEXT 不支持 默認(rèn)值,也無法使用 索引(僅支持前綴索引),但可以存儲(chǔ)大量文本。
  • VARCHAR 可以索引整個(gè)字段,適用于需要頻繁搜索的文本字段。

2. 數(shù)字(Numeric)數(shù)據(jù)類型

數(shù)字類型用于存儲(chǔ)整數(shù)或小數(shù),主要分為整數(shù)類型浮點(diǎn)/定點(diǎn)類型。

2.1 整數(shù)類型

數(shù)據(jù)類型存儲(chǔ)大小取值范圍(無符號(hào))適用場景
TINYINT1 字節(jié)0 ~ 255布爾值(0/1)、評(píng)分
SMALLINT2 字節(jié)0 ~ 65,535小范圍數(shù)值,如年齡
MEDIUMINT3 字節(jié)0 ~ 16,777,215適用于 ID、自增字段
INT(INTEGER)4 字節(jié)0 ~ 4,294,967,295適用于大部分場景,如用戶 ID
BIGINT8 字節(jié)0 ~ 18,446,744,073,709,551,615適用于超大數(shù)值,如銀行賬戶余額

無符號(hào)(UNSIGNED) vs. 有符號(hào)

  • 默認(rèn)情況下整數(shù)是有符號(hào)的(即支持負(fù)數(shù))。
  • UNSIGNED 關(guān)鍵字可以使整數(shù)僅存儲(chǔ)非負(fù)數(shù),從而擴(kuò)大可用范圍。
CREATE TABLE users (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
);

2.2 浮點(diǎn)與定點(diǎn)類型

數(shù)據(jù)類型存儲(chǔ)大小適用場景
FLOAT(M, D)4 字節(jié)適用于非嚴(yán)格精度的計(jì)算,如游戲評(píng)分
DOUBLE(M, D)8 字節(jié)高精度計(jì)算,如科學(xué)計(jì)算
DECIMAL(M, D)(NUMERIC)可變財(cái)務(wù)計(jì)算,避免精度丟失

FLOAT vs. DECIMAL

FLOAT/DOUBLE 使用二進(jìn)制存儲(chǔ),可能導(dǎo)致精度誤差:

SELECT 0.1 + 0.2; -- 結(jié)果可能不是 0.3

DECIMAL 采用字符串存儲(chǔ),不會(huì)丟失精度:

CREATE TABLE transactions (
    amount DECIMAL(10,2) NOT NULL
);

建議:

  • 財(cái)務(wù)類數(shù)據(jù)使用 DECIMAL,避免計(jì)算誤差。
  • 非關(guān)鍵計(jì)算(如統(tǒng)計(jì)數(shù)據(jù))可使用 FLOATDOUBLE。

3. 日期與時(shí)間(Date & Time)

MySQL 提供多個(gè)日期時(shí)間類型:

數(shù)據(jù)類型存儲(chǔ)大小適用場景
FLOAT(M, D)4 字節(jié)適用于非嚴(yán)格精度的計(jì)算,如游戲評(píng)分
DOUBLE(M, D)8 字節(jié)高精度計(jì)算,如科學(xué)計(jì)算
DECIMAL(M, D)(NUMERIC)可變財(cái)務(wù)計(jì)算,避免精度丟失

DATETIME vs. TIMESTAMP

  • TIMESTAMP 受時(shí)區(qū)影響,適合存儲(chǔ)事件發(fā)生時(shí)間。
  • DATETIME 不受時(shí)區(qū)影響,適合存儲(chǔ)固定時(shí)間。
CREATE TABLE events (
    event_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4. 選擇數(shù)據(jù)類型的最佳實(shí)踐

  • 能用整數(shù)就不要用字符串(如性別可用 TINYINT)。
  • 存儲(chǔ)金額、財(cái)務(wù)數(shù)據(jù)時(shí),使用 DECIMAL 而非 FLOAT。
  • 短文本(<255 字符)用 VARCHAR,長文本用 TEXT。
  • 索引字段盡量避免 TEXTBLOB,影響查詢性能。
  • 時(shí)間戳數(shù)據(jù)盡量使用 TIMESTAMP 代替 DATETIME,節(jié)省存儲(chǔ)空間。

總結(jié)

MySQL 提供了多種數(shù)據(jù)類型,每種類型都有其適用場景。合理選擇數(shù)據(jù)類型可以提升存儲(chǔ)效率、優(yōu)化查詢性能,并避免精度損失。希望這篇文章能幫助你在數(shù)據(jù)庫設(shè)計(jì)時(shí)做出更好的選擇!??

到此這篇關(guān)于MySQL 數(shù)據(jù)類型詳解:字符串、數(shù)字、日期的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql重復(fù)索引與冗余索引實(shí)例分析

    mysql重復(fù)索引與冗余索引實(shí)例分析

    這篇文章主要介紹了mysql重復(fù)索引與冗余索引,簡單說明了重復(fù)索引與冗余索引的概念、應(yīng)用場景并結(jié)合實(shí)例形式分析了mysql重復(fù)索引與冗余索引相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • docker拉取MySQL8.0鏡像以及安裝的完整步驟

    docker拉取MySQL8.0鏡像以及安裝的完整步驟

    這篇文章主要介紹了如何在Docker中安裝和配置MySQL鏡像,包括數(shù)據(jù)掛載、配置文件設(shè)置、環(huán)境變量配置以及DBeaver數(shù)據(jù)庫連接的常見問題解決方法,需要的朋友可以參考下
    2025-02-02
  • MySQL函數(shù)sysdate()與now()的區(qū)別測試用例對(duì)比

    MySQL函數(shù)sysdate()與now()的區(qū)別測試用例對(duì)比

    這篇文章主要為大家介紹了MySQL函數(shù)sysdate()與now()的區(qū)別測試用例對(duì)比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • MySQL?bit類型增加索引后查詢結(jié)果不正確案例解析

    MySQL?bit類型增加索引后查詢結(jié)果不正確案例解析

    這篇文章主要介紹了MySQL?bit類型增加索引后查詢結(jié)果不正確案例淺析,我們先創(chuàng)建表student_attend,初始化一些數(shù)據(jù),這篇文章的測試環(huán)境為MySQL 8.0.35社區(qū)版,具體內(nèi)容介紹跟隨小編一起學(xué)習(xí)吧
    2024-06-06
  • 關(guān)于MySQL中的查詢開銷查看方法詳解

    關(guān)于MySQL中的查詢開銷查看方法詳解

    一個(gè)查詢通??梢杂泻芏喾N執(zhí)行方式,并且返回同樣的結(jié)果,而好的程序員應(yīng)該是找到最好的方式,下面這篇文章主要給大家介紹了關(guān)于MySQL中查詢開銷查看方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • MySQL的DELETE刪除數(shù)據(jù)示例詳解

    MySQL的DELETE刪除數(shù)據(jù)示例詳解

    MySQL的DELETE語句用于從數(shù)據(jù)庫表中刪除記錄,本文將詳細(xì)介紹DELETE語句的基本語法、高級(jí)用法、性能優(yōu)化策略以及注意事項(xiàng),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 關(guān)于clickhouse幾種create table的情況

    關(guān)于clickhouse幾種create table的情況

    這篇文章主要介紹了關(guān)于clickhouse幾種create table的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實(shí)例詳解

    mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實(shí)例詳解

    這篇文章主要介紹了mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • mysql 基本操作

    mysql 基本操作

    早打算寫些關(guān)于數(shù)據(jù)庫操作方面的知識(shí)了,現(xiàn)在終于完成了第一篇,以下記錄了關(guān)于mysql操作方面的基礎(chǔ)知識(shí)
    2012-08-08
  • MySQL InnoDB中意向鎖的作用及原理

    MySQL InnoDB中意向鎖的作用及原理

    意向鎖是由InnoDB在操作數(shù)據(jù)之前自動(dòng)加的,本文主要介紹了MySQL InnoDB中意向鎖的作用及原理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05

最新評(píng)論

堆龙德庆县| 鸡泽县| 武山县| 邢台县| 平阳县| 米林县| 乾安县| 奉节县| 宜兰市| 梅河口市| 乃东县| 杭锦旗| 涟水县| 贵德县| 常熟市| 太和县| 赣州市| 乐陵市| 温州市| 嘉兴市| 尖扎县| 南宁市| 海阳市| 福安市| 黎城县| 尉犁县| 阳东县| 微博| 恭城| 荔波县| 肇庆市| 南开区| 阳东县| 大城县| 彭山县| 神池县| 云梦县| 共和县| 台州市| 堆龙德庆县| 镇安县|