首頁 >資料庫 >mysql教程 >mysql的數字類型是什麼?

mysql的數字類型是什麼?

青灯夜游
青灯夜游原創
2020-10-13 17:43:3414354瀏覽

mysql的數字類型是:INT類型、TINYINT類型、SMALLINT類型、MEDIUMINT類型、BIGINT類型、FLOAT類型、DOUBLE類型、DECIMAL類型。

mysql的數字類型是什麼?

(推薦教學:mysql影片教學

mysql的數字類型

1、mysql整數型別

整數型別又稱數值型數據,數值型資料型別主要用來儲存數字。

MySQL 提供了多種數值型資料類型,不同的資料類型提供不同的取值範圍,可以儲存的值範圍越大,所需的儲存空間也會越大。

MySQL 主要提供的整數類型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其屬性欄位可以加入 AUTO_INCREMENT 自增約束條件。下表中列出了 MySQL 中的數值類型。

mysql的數字類型是什麼?

從上表可以看到,不同類型的整數儲存所需的位元組數不相同,佔用位元組數最小的是TINYINT 類型,佔用位元組最大的是BIGINT 類型,佔用的位元組越多的類型所能表示的數值範圍越大。

根據佔用位元組數可以求出每一種資料類型的取值範圍。例如,TINYINT 需要 1 個位元組(8bit)來存儲,那麼 TINYINT 無符號數的最大值為 28-1,即 255;TINYINT 有符號數的最大值為 27-1,即 127。其他類型的整數的取值範圍計算方法相同,如下表所示。

mysql的數字類型是什麼?

提示:顯示寬度和資料類型的取值範圍是無關的。顯示寬度只是指明 MySQL 最大可能顯示的數字個數,數值的位數小於指定的寬度時會被空格填入。如果插入了大於顯示寬度的值,只要該值不超過該類型整數的值範圍,數值仍可插入,而且能夠顯示出來。例如,year 欄位插入 19999,當使用 SELECT 查詢該列值的時候,MySQL 顯示的將是完整的帶有 5 位數字的 19999,而不是 4 位數字的值。

其他整數資料類型也可以在定義表結構時指定所需的顯示寬度,如果不指定,則系統為每種類型指定預設的寬度值。

不同的整數類型有不同的取值範圍,並且需要不同的儲存空間,因此應根據實際需求選擇最合適的類型,這有利於提高查詢的效率並節省儲存空間。

2、mysql小數型別

MySQL 中使用浮點數和定點數來表示小數。

浮點數類型有兩種,分別是單精度浮點數(FLOAT)和雙精度浮點數(DOUBLE);定點類型只有一種,就是 DECIMAL。

浮點類型和定點類型都可以用(M, D)來表示,其中M稱為精度,表示總共的位數;D稱為標度,表示小數的位數。

浮點數類型的值範圍為 M(1~255)和 D(1~30,且不能大於 M-2),分別表示顯示寬度和小數位數。 M 和 D 在 FLOAT 和DOUBLE 中是可選的,FLOAT 和 DOUBLE 類型將被保存為硬體所支援的最大精度。 DECIMAL 的預設 D 值為 0、M 值為 10。

下表中列出了 MySQL 中的小數型別和儲存需求。

mysql的數字類型是什麼?

DECIMAL 類型不同於 FLOAT 和 DOUBLE。 DOUBLE 實際上是以字串的形式存放的,DECIMAL 可能的最大取值範圍與 DOUBLE 相同,但是有效的取值範圍由 M 和 D 決定。如果改變 M 而固定 D,則取值範圍將隨 M 的變大而變大。

從上表可以看到,DECIMAL 的儲存空間並不是固定的,而由精確度值 M 決定,佔用 M 2 個位元組。

FLOAT 類型的值範圍如下:

  • 有符號的值範圍:-3.402823466E 38~-1.175494351E-38。

  • 無符號的值範圍:0 和 -1.175494351E-38~-3.402823466E 38。

DOUBLE 類型的值範圍如下:

  • 有符號的值範圍:-1.7976931348623157E 308~-2.2250738585072014E-308。

  • 無符號的值範圍:0 和 -2.2250738585072014E-308~-1.7976931348623157E 308。

提示:不論是定點還是浮點類型,如果使用者指定的精度超出精度範圍,則會四捨五入進行處理。

FLOAT 和 DOUBLE 在不指定精度時,預設會按照實際的精度(由電腦硬體和作業系統決定),DECIMAL 如果不指定精度,預設為(10,0)。

浮點數相對於定點數的優點是在長度一定的情況下,浮點數能夠表示更大的範圍;缺點是會造成精確度問題。

最後再強調一下:在MySQL 中,定點數以字符串形式存儲,在對精度要求比較高的時候(如貨幣、科學數據),使用DECIMAL 的類型比較好,另外兩個浮點數進行減法和比較運算時也容易出問題,所以在使用浮點數時需要注意,並儘量避免做浮點數比較。

以上是mysql的數字類型是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn