mysql的數位型別是:INT型別、TINYINT型別、SMALLINT型別、MEDIUMINT型別、BIGINT型別、FLOAT型別、DOUBLE型別、DECIMAL型別。
(推薦教學:)
mysql的數位型別
1、mysql整數型別
整數型別又稱數值型資料,數值型資料型別主要用來儲存數位。
MySQL 提供了多種數值型資料型別,不同的資料型別提供不同的取值範圍,可以儲存的值範圍越大,所需的儲存空間也會越大。
MySQL 主要提供的整數型別有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其屬性欄位可以新增 AUTO_INCREMENT 自增約束條件。下表中列出了 MySQL 中的數值型別。
從上表中可以看到,不同型別的整數儲存所需的位元組數不相同,佔用位元組數最小的是 TINYINT 型別,佔用位元組最大的是 BIGINT 型別,佔用的位元組越多的型別所能表示的數值範圍越大。
根據佔用位元組數可以求出每一種資料型別的取值範圍。例如,TINYINT 需要 1 個位元組(8bit)來儲存,那麼 TINYINT 無符號數的最大值為 28-1,即 255;TINYINT 有符號數的最大值為 27-1,即 127。其他型別的整數的取值範圍計算方法相同,如下表所示。
提示:顯示寬度和資料型別的取值範圍是無關的。顯示寬度只是指明 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 中的小數型別和儲存需求。
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的數位型別是什麼?的詳細內容,更多請關注TW511.COM其它相關文章!