MySQL數(shù)據(jù)類型Numeric詳解
前言
MySQL系列最近三篇均關(guān)注了和我們?nèi)粘9ぷ骰驅(qū)W習(xí)密切相關(guān)的安全話題,通過(guò)介紹相關(guān)領(lǐng)域知識(shí)或?qū)嵺`,為有需要的盆友提供便捷的參考方案。
從本文開(kāi)始,博主打算換個(gè)“口味”
,正如吃飯需要“酸甜苦辣咸”
一樣,數(shù)據(jù)類型(Data Types)是MySQL存儲(chǔ)的基本標(biāo)準(zhǔn)。今天博主帶著各位先深入學(xué)習(xí)其中之一:Numeric
。
一、數(shù)值類型綜述
MySQL支持?jǐn)?shù)值類型,主要包括兩類:
- 精確的數(shù)值數(shù)據(jù)類型:
INTEGER、SMALLINT、DECIMAL和NUMERIC - 近似的數(shù)值數(shù)據(jù)類型:
FLOAT、REAL和DOUBLE PRECISION
二、數(shù)值類型詳解
1. NUMERIC
1.1 UNSIGNED或SIGNED
Numeric類型允許UNSIGNED(無(wú)符號(hào))和SIGNED(有符號(hào))。其中SIGNED是默認(rèn)屬性,UNSIGNED用于限制數(shù)值為非負(fù)。它們的區(qū)別就是UNSIGNED擴(kuò)展了整型數(shù)據(jù)的可用范圍,但是并沒(méi)有改變類型存儲(chǔ)的數(shù)據(jù)范圍。
1.2 數(shù)據(jù)類型劃分
Numeric包括以下主要的數(shù)據(jù)類型:
類型 | 說(shuō)明 |
---|---|
BIT | 位,取值[1,64],默認(rèn)是1 |
TINYINT | 短整數(shù),取值[-128,127] ;如無(wú)符號(hào),取值[0,255] |
BOOL,BOOLEAN | 等同TINYINT[1],0代表false,非0代表1 |
SMALLINT | 短整數(shù),取值[-32768,32767] ;如無(wú)符號(hào),取值[0,65535] |
MEDIUMINT | 中等整數(shù),取值[-8388608,8388607] ;如無(wú)符號(hào),取值[ 0,16777215] |
INT,INTEGER | 正常整數(shù),取值[-2147483648,2147483647] ;如無(wú)符號(hào),取值[ 0,4294967295] |
BIGINT | 長(zhǎng)整數(shù),取值[ -9223372036854775808,9223372036854775807] ;如無(wú)符號(hào),取值[0,18446744073709551615] |
DECIMAL | 一個(gè)“固定” 的浮點(diǎn)數(shù),支持的最大長(zhǎng)度65(默認(rèn)10),最大的小數(shù)位數(shù)30(默認(rèn)0) |
FLOAT | 一個(gè)單精度浮點(diǎn)數(shù),取值[3.402823466E+38,-1.175494351E-38]和[1.175494351E-38,3.402823466E+38],可精確到小數(shù)點(diǎn)7位左右。該類型的數(shù)據(jù)精度隨硬件或操作系統(tǒng)的差異會(huì)有所不同 |
DOUBLE | 一個(gè)雙精度浮點(diǎn)數(shù),取值[-1.7976931348623157E+308,-2.2250738585072014E-308]和[0,2.225073585072014E-308-1797693134863157E+308],可精確到小數(shù)點(diǎn)15位左右 |
2. Integer類型取值和存儲(chǔ)要求
3. Fixed-Point類型取值和存儲(chǔ)要求
DECIMAL
和NUMERIC
類型可以存儲(chǔ)精確的浮點(diǎn)數(shù)據(jù),如金額類數(shù)據(jù)。比如創(chuàng)建一個(gè)注冊(cè)資本字段:regcap decimal(10,2),代表長(zhǎng)度為10位,并保留2位小數(shù)。
提示
:在MySQL中,NUMERIC等同于DECIMAL。
4. Floating-Point類型取值和存儲(chǔ)要求
FLOAT
和DOUBLE
類型表示近似的數(shù)值。在MySQL中,使用四個(gè)字節(jié)表示單精度值,八個(gè)字節(jié)表示雙精度值。
比如我們定義一個(gè)類型為*float(10,5)*的字段,實(shí)際會(huì)存入一個(gè)近似值。
結(jié)語(yǔ)
本文對(duì)MySQL數(shù)據(jù)類型中的Numeric進(jìn)行了說(shuō)明,可以指導(dǎo)我們?cè)诮◣?kù)建表的時(shí)候,針對(duì)不同業(yè)務(wù)字段設(shè)計(jì)不同的Numeric類型。
到此這篇關(guān)于MySQL數(shù)據(jù)類型Numeric詳解的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ubuntu 15.04下mysql開(kāi)放遠(yuǎn)程3306端口
這篇文章主要為大家詳細(xì)介紹了ubuntu 15.04開(kāi)放mysql遠(yuǎn)程3306端口的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01mysql的limit用法及邏輯分頁(yè)和物理分頁(yè)
本文主要介紹了mysql的limit用法及邏輯分頁(yè)和物理分頁(yè),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Linux下Mysql5.6 二進(jìn)制安裝過(guò)程
這篇文章主要介紹了Linux下Mysql5.6 二進(jìn)制安裝過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06mysql?explain中key_len的含義以及計(jì)算方法
通常在優(yōu)化SQL查詢的時(shí)候,我們都會(huì)使用explain分析SQL執(zhí)行計(jì)劃,下面這篇文章主要給大家介紹了關(guān)于mysql?explain中key_len的含義以及計(jì)算方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03Mysql插入中文變?yōu)槿珕?wèn)號(hào)???的問(wèn)題 解決方法
這篇文章介紹了Mysql插入中文變?yōu)槿珕?wèn)號(hào)???的問(wèn)題 解決方法,有需要的朋友可以參考一下2013-09-09mysql使用字符串字段判斷是否包含某個(gè)字符串的方法
在MySQL中,判斷字符串字段是否包含特定子字符串,可使用LIKE操作符、INSTR()函數(shù)、LOCATE()函數(shù)、POSITION()函數(shù)、FIND_IN_SET()函數(shù)以及正則表達(dá)式REGEXP或RLIKE,每種方法適用于不同的場(chǎng)景和需求,LIKE和INSTR()通常用于簡(jiǎn)單包含判斷2024-09-09