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

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

 更新時(shí)間:2026年01月04日 10:29:27   作者:阿達(dá)C  
在MySQL數(shù)據(jù)庫(kù)中,內(nèi)置函數(shù)是進(jìn)行數(shù)據(jù)操作和查詢(xún)的強(qiáng)大工具,涵蓋了許多不同類(lèi)型的操作,如數(shù)學(xué)計(jì)算、字符串操作和日期時(shí)間處理,這篇文章主要介紹了MySQL數(shù)據(jù)類(lèi)型之字符串、數(shù)字、日期的相關(guān)資料,需要的朋友可以參考下

前言

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

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

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

1.1 定長(zhǎng)與變長(zhǎng)字符串

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

CHAR vs. VARCHAR

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

一般來(lái)說(shuō):

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

1.2 TEXT 和 BLOB

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

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

TEXT vs. VARCHAR

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

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

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

2.1 整數(shù)類(lèi)型

數(shù)據(jù)類(lèi)型存儲(chǔ)大小取值范圍(無(wú)符號(hào))適用場(chǎng)景
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適用于大部分場(chǎng)景,如用戶(hù) ID
BIGINT8 字節(jié)0 ~ 18,446,744,073,709,551,615適用于超大數(shù)值,如銀行賬戶(hù)余額

無(wú)符號(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)類(lèi)型

數(shù)據(jù)類(lèi)型存儲(chǔ)大小適用場(chǎng)景
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ù)類(lèi)數(shù)據(jù)使用 DECIMAL,避免計(jì)算誤差。
  • 非關(guān)鍵計(jì)算(如統(tǒng)計(jì)數(shù)據(jù))可使用 FLOAT 或 DOUBLE。

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

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

數(shù)據(jù)類(lèi)型存儲(chǔ)大小取值范圍適用場(chǎng)景
DATE3 字節(jié)1000-01-01 ~ 9999-12-31生日、訂單日期
DATETIME8 字節(jié)1000-01-01 00:00:00 ~ 9999-12-31 23:59:59需要精確到秒的時(shí)間,如創(chuàng)建時(shí)間
TIMESTAMP4 字節(jié)1970-01-01 00:00:01 ~ 2038-01-19 03:14:07適用于存儲(chǔ) Unix 時(shí)間戳
TIME3 字節(jié)-838:59:59 ~ 838:59:59記錄時(shí)間間隔
YEAR1 字節(jié)1901 ~ 2155適用于年份數(shù)據(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ù)類(lèi)型的最佳實(shí)踐

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

總結(jié)

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

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

相關(guān)文章

  • mysql報(bào)1292?Incorrect?datetime?value錯(cuò)誤的解決方法

    mysql報(bào)1292?Incorrect?datetime?value錯(cuò)誤的解決方法

    這篇文章主要給大家介紹如何解決mysql報(bào)1292?Incorrect?datetime?value錯(cuò)誤,文中有詳細(xì)的解決方案,具有一定的參考價(jià)值,需要的同學(xué)可以參考閱讀下本文
    2023-07-07
  • MySQL中獲取時(shí)間的所有方法小結(jié)

    MySQL中獲取時(shí)間的所有方法小結(jié)

    在MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā)中,獲取時(shí)間是一個(gè)常見(jiàn)的需求,MySQL提供了多種方法來(lái)獲取當(dāng)前日期、時(shí)間和時(shí)間戳,并且可以對(duì)時(shí)間進(jìn)行格式化、計(jì)算和轉(zhuǎn)換,本文介紹了一些常用的MySQL時(shí)間函數(shù)及其示例,需要的朋友可以參考下
    2024-07-07
  • 詳解MySql如何不插入重復(fù)數(shù)據(jù)

    詳解MySql如何不插入重復(fù)數(shù)據(jù)

    本文主要介紹了詳解MySql如何不插入重復(fù)數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • SQL Server 數(shù)據(jù)庫(kù)的備份詳細(xì)介紹及注意事項(xiàng)

    SQL Server 數(shù)據(jù)庫(kù)的備份詳細(xì)介紹及注意事項(xiàng)

    這篇文章主要介紹了SQL Server 備份詳細(xì)介紹及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • mysql如何處理varchar與nvarchar類(lèi)型中的特殊字符

    mysql如何處理varchar與nvarchar類(lèi)型中的特殊字符

    這篇文章主要介紹了mysql如何處理varchar與nvarchar類(lèi)型中的特殊字符,需要的朋友可以參考下
    2014-12-12
  • MySQL5.6.22 綠色版 安裝詳細(xì)教程(圖解)

    MySQL5.6.22 綠色版 安裝詳細(xì)教程(圖解)

    本文通過(guò)圖文并茂的形式給大家介紹了MySQL5.6.22 綠色版 安裝詳細(xì)教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-11-11
  • MySQL中索引的優(yōu)化的示例詳解

    MySQL中索引的優(yōu)化的示例詳解

    索引是數(shù)據(jù)庫(kù)優(yōu)化最常用也是最重要的手段之一,通過(guò)索引通常可以幫助用戶(hù)解決大多數(shù)的MySQL的性能優(yōu)化問(wèn)題。本文主要來(lái)講講索引優(yōu)化的方法,希望對(duì)大家有所幫助
    2023-02-02
  • 深度解析MySQL存儲(chǔ)引擎與索引

    深度解析MySQL存儲(chǔ)引擎與索引

    本文全面解析了MySQL數(shù)據(jù)庫(kù)的核心知識(shí)體系,包括存儲(chǔ)引擎、索引優(yōu)化、SQL優(yōu)化、視圖與存儲(chǔ)過(guò)程、鎖機(jī)制以及InnoDB引擎原理等關(guān)鍵內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2026-05-05
  • mysql的select?into給多個(gè)字段變量賦值方式

    mysql的select?into給多個(gè)字段變量賦值方式

    這篇文章主要介紹了mysql的select?into給多個(gè)字段變量賦值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • MySQL刪除表數(shù)據(jù)的方法

    MySQL刪除表數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL刪除表數(shù)據(jù)的方法,小編覺(jué)得還是挺不錯(cuò)的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10

最新評(píng)論

石泉县| 台中县| 文昌市| 行唐县| 措美县| 临漳县| 铜川市| 南丰县| 静乐县| 余江县| 龙井市| 精河县| 大英县| 江都市| 榆中县| 西宁市| 板桥市| 额尔古纳市| 宁强县| 万山特区| 垦利县| 新营市| 密云县| 镇康县| 永春县| 民和| 芦溪县| 项城市| 油尖旺区| 甘泉县| 左贡县| 上饶市| 乃东县| 章丘市| 淮阳县| 彩票| 湘潭县| 甘泉县| 桦南县| 松滋市| 潮安县|