MySql 資料型別的整理

2021-08-15 17:53:28 字數 1734 閱讀 7271

(tinyint:int1, smallint:int2, mediumint:int3, int:int4, bigint:int8,integer同int)也可以定義成如下型別。

mysql中的浮點型別有float,double和real

float和double中的m和d的取值預設都為0,即除了最大最小值,不限制位數。允許的值理論上是-1.7976931348623157e+308~-2.2250738585072014e-    308、0和2.2250738585072014e-308~1.7976931348623157e+308。m、d範圍如下:

float和double中,若m的定義分別超出7和17,則多出的有效數字部分,取值是不定的,通常數值上會發生錯誤。因為浮點數是不準確的,所以我們要避免使用「=」來判斷兩個數是否相等。

如果希望保證值比較準確,推薦使用定點數資料型別。

1.3.1decimal(m,d),其中m表示十進位制數字總的個數,d表示小數點後面數字的位數,上例中的取值範圍為-999.99~999.99。

1.3.2如果儲存時,整數部分超出了範圍(如上面的例子中,新增數值為1000.01),mysql就會報錯,不允許存這樣的值。

1.3.3如果儲存時,小數點部分若超出範圍,就分以下情況:

若四捨五入後,整數部分沒有超出範圍,則只警告,但能成功操作並四捨五入刪除多餘的小數字後儲存。如999.994實際被儲存為999.99

若四捨五入後,整數部分超出範圍,則mysql報錯,並拒絕處理。如999.995和-999.995都會報錯。

1.3.4m的預設取值為10,d預設取值為0。如果建立表時,某欄位定義為decimal型別不帶任何引數,等同於decimal(10,0)。帶乙個引數時,d取預設值。  

m的取值範圍為1~65,取0時會被設為預設值,超出範圍會報錯。   

d的取值範圍為0~30,而且必須<=m,超出範圍會報錯。

所以,很顯然,當m=65,d=0時,可以取得最大和最小值。

字串型別指char、varchar、binary、varbinary、blob、text、enum和set。

char 型別可以使用 binary 修飾符。當用於比較運算時,這個修飾符使 char 以二進位制方式參於運算,而不是以傳統的區分大小寫的方式。

char 型別的乙個變體是 varchar 型別。它是一種可變長度的字串型別,並且也必須帶有乙個範圍在 0-255 之間的指示器。char 和 varchgar 不同之處在於 musql 資料庫處理這個指示器的方式:char 把這個大小視為值的大小,不長度不足的情況下就用空格補足。而 varchar 型別把它視為最大值並且只使用儲存字串實際需要的長度(增加乙個額外位元組來儲存字串本身的長度)來儲存值。所以短於指示器長度的 varchar 型別不會被空格填補,但長於指示器的值仍然會被截短。

因為 varchar 型別可以根據實際內容動態改變儲存值的長度,所以在不能確定字段需要多少字元時使用 varchar 型別可以大大地節約磁碟空間、提高儲存效率。

varchar 型別在使用 binary 修飾符時與 char 型別完全相同。

binary和varbinary型別類似於char和varchar型別,但是不同的是,它們儲存的不是字元字串,而是二進位制串。所以它們沒有字符集,並且排序和比較基於列值位元組的數值。

mysql整理型別 mysql資料型別整理

mysql 中資料型別主要有三種 文字.數字 日期 時間 文字型別 char 定長,varchar變長,都是最多65535,char多了會擷取,varchar少了自動補長.text最多65535,blob也是最多65535,blob可存二進位制,轉存,enum和set列舉,enum65535個,se...

資料型別整理

1 單精度 型別說明符為float,該實型資料在記憶體中佔4個位元組,表示的數值範圍是 3.4e38 3.4e38。例如 float a 2 雙精度 型別說明符為double,該實型資料在記憶體中佔8個位元組,表示的數值範圍是 1.7e08 1.7e308。例如 double b 3 長雙精度 型別...

資料型別整理

整理 數字int 字串replace find join strip startswith split upper lower format tempalete i am age v tempalets.pormat name alex age 19 v tempalete.format print...