日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

分析MySQL数据类型的长度

發(fā)布時間:2025/3/15 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分析MySQL数据类型的长度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

分析MySQL數(shù)據(jù)類型的長度

????? MySQL有幾種數(shù)據(jù)類型可以限制類型的"長度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。

????? 然而,這些數(shù)據(jù)類型的長度,并不是都指數(shù)據(jù)的大小。具體說就是:
(1)CHAR、VARCAHR的長度是指字符的長度,例如CHAR[3]則只能放字符串"123",如果插入數(shù)據(jù)"1234",則從高位截取,變?yōu)?#34;123"。 VARCAHR同理。

(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的長度,其實和數(shù)據(jù)的大小無關(guān)!Length指的是顯示寬度,舉個例子:

[cpp]?view plaincopy
  • mysql>?create?table?test(id?int(3)?zerofill);??
  • Query?OK,?0?rows?affected?(0.09?sec)??
  • ??
  • mysql>?insert?into?test(id)?values(1),(1234);??
  • Query?OK,?2?rows?affected?(0.06?sec)??
  • Records:?2??Duplicates:?0??Warnings:?0??
  • ??
  • mysql>?select?*?from?test;??
  • +------+??
  • |?id???|??
  • +------+??
  • |??001?|??
  • |?1234?|??
  • +------+??
  • 2?rows?in?set?(0.00?sec)??
  • ??

    可以看出,id的顯示寬度為3,不足的左邊補0,數(shù)據(jù)長度超過的則原樣輸出。如果沒有zerofill,則看不出顯示寬度,沒有前導(dǎo)零。

    (3)FLOAT、DOUBLE和DECIMAL的長度指的是全部數(shù)位(包括小數(shù)點后面的),例如DECIMAL(4,1)指的是全部位數(shù)為4,小數(shù)點后1位,如果插入1234,則查詢的數(shù)據(jù)是999.9。過程如下

    ?

    [cpp]?view plaincopy
  • mysql>?alter?table?test?add?realnum?decimal(4,1);??
  • Query?OK,?2?rows?affected?(0.03?sec)??
  • Records:?2??Duplicates:?0??Warnings:?0??
  • ??
  • mysql>?insert?into?test(id,realnum)?values(2,1234);??
  • Query?OK,?1?row?affected,?1?warning?(0.05?sec)??
  • ??
  • mysql>?select?*?from?test;??
  • +------+---------+??
  • |?id???|?realnum?|??
  • +------+---------+??
  • |??001?|????NULL?|??
  • |?1234?|????NULL?|??
  • |??002?|???999.9?|??
  • +------+---------+??
  • 3?rows?in?set?(0.02?sec)??

  • 附錄 常見MySQL數(shù)據(jù)類型(留作備忘)

    類?型

    大?小

    描?述

    CAHR(Length)

    Length字節(jié)

    定長字段,長度為0~255個字符

    VARCHAR(Length)

    String長度+1字節(jié)或String長度+2字節(jié)

    變長字段,長度為0~65 535個字符

    TINYTEXT

    String長度+1字節(jié)

    字符串,最大長度為255個字符

    TEXT

    String長度+2字節(jié)

    字符串,最大長度為65 535個字符

    MEDIUMINT

    String長度+3字節(jié)

    字符串,最大長度為16 777 215個字符

    LONGTEXT

    String長度+4字節(jié)

    字符串,最大長度為4 294 967 295個字符

    TINYINT(Length)

    1字節(jié)

    范圍:-128~127,或者0~255(無符號)

    SMALLINT(Length)

    2字節(jié)

    范圍:-32 768~32 767,或者0~65 535(無符號)

    MEDIUMINT(Length)

    3字節(jié)

    范圍:-8 388 608~8 388 607,或者0~16 777 215(無符號)

    INT(Length)

    4字節(jié)

    范圍:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(無符號)

    BIGINT(Length)

    8字節(jié)

    范圍:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(無符號)

    FLOAT(Length, Decimals)

    4字節(jié)

    具有浮動小數(shù)點的較小的數(shù)

    DOUBLE(Length, Decimals)

    8字節(jié)

    具有浮動小數(shù)點的較大的數(shù)

    DECIMAL(Length, Decimals)

    Length+1字節(jié)或Length+2字節(jié)

    存儲為字符串的DOUBLE,允許固定的小數(shù)點

    DATE

    3字節(jié)

    采用YYYY-MM-DD格式

    DATETIME

    8字節(jié)

    采用YYYY-MM-DD HH:MM:SS格式

    TIMESTAMP

    4字節(jié)

    采用YYYYMMDDHHMMSS格式;可接受的范圍終止于2037年

    TIME

    3字節(jié)

    采用HH:MM:SS格式

    ENUM

    1或2字節(jié)

    Enumeration(枚舉)的簡寫,這意味著每一列都可以具有多個可能的值之一

    SET

    1、2、3、4或8字節(jié)

    與ENUM一樣,只不過每一列都可以具有多個可能的值


    總結(jié)

    以上是生活随笔為你收集整理的分析MySQL数据类型的长度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。