MySQL資料型別的總結

2021-08-10 12:28:38 字數 1811 閱讀 6005

最近在學習mysql,對mysql資料型別做了些查閱資料,以下對最近的查閱情況進行總結~

char和varchar

char(n)是固定長度,最多255個字元;varchar(n)是可變長度,最多65535個字元。

在儲存大小上,char(n)儲存n個位元組大小,如果字串長度小於n,則後面用空格補齊,因此如果字串後面有空格,用char型別存放是無效的;varchar則是實際字串的長度+1/2個位元組(如果n<=255,則加1個位元組;如果n>255,則加2個位元組)。

在查詢速度上,char速度比varchar快。

浮點型和定點型

浮點型包括有float和double,如float(m,d)double(m,d),其中m代表總個數,d代表小數字;定點型有decimal,如`decimal(m,d) ,其中,m是總個數,d是小數字。

浮點型在資料庫中存放的是近似值,而定點型別在資料庫中存放的是精確值。

float是8位精度(4位元組);double是16位精度(8位元組)。

tinyint、smallint、mediumint、int和bigint

這幾個都是定長的資料型別,以int為例。

int型別屬於定長型別,大小為4個位元組,有符號儲存範圍為-2147483648~2147483647。

int(n)中的n表示的是其顯示長度,不影響其儲存空間大小。

所以,tinyint、smallint、mediumint、int和bigint後面附屬的n表示其顯示長度,不影響儲存空間大小。

float(m,n),decimal(m,n)

float(m,n)是屬於變長型別,decimal(m,n)屬於定長型別,其中m代表總的個數,n代表小數字的精確位數。因此在儲存的時候,先判斷小數字進行「對齊」,即「多刪少補」,多刪的規則是四捨五入,少補就是後面補0。然後對整數字進行判斷是否越界,如果越界,根據不同的模式有不同的處理,嚴格模式則提示error: out of range,非嚴格模式則儲存為上界數。

char(n),varchar(n)

char(n)varchar(n)的n都是用來限制儲存長度,如果存入的字串長度超過n,則報錯。

比如在tc表中建立屬性為char(4)varchar(4)的字段,然後分別insert長度為5的字串則會報錯。

小數和整數分別計算,每9位數佔4位元組,剩餘部分如下表換算:

位數占用位元組數00

1-21

3-42

5-63

7-94

舉幾個例子:

比如decimal(18,9),整數部分和小數部分各9位,所以各佔4位元組,共8bytes

再比如decimal(20,6),整數14位,需要4位元組存9位,還需3位元組存5位;小數6位,需3位元組。共10bytes

mysql數字型別int與tinyint、float與decimal如何選擇

mysql 資料型別

未完,待續~

mysql資料型別總結

mysql支援所有標準sql數值資料型別。這些型別包括嚴格數值資料型別 integer smallint decimal和numeric 以及近似數值資料型別 float real和double precision 關鍵字int是integer的同義詞,關鍵字dec是decimal的同義詞。資料型別...

mysql 資料型別總結

整形 以下為signed,unsigned為無符號,自推 型別占用位元組 範圍tinyint 1 128,127 smallint 2 2 8,2 8 1 mediumint 3 2 12,2 12 1 int4 2 16,2 16 1 bigint 8 2 32,2 32 1 型別占用位元組 fl...

mysql資料個人總結 MySQL資料型別總結

摘要 mysql中的資料型別大的方面來分,可以分為 日期和時間 數值,以及字串。下面就分開來進行總結。日期和時間資料型別mysql資料型別含義d.mysql中的資料型別大的方面來分,可以分為 日期和時間 數值,以及字串。下面就分開來進行總結。日期和時間資料型別 mysql資料型別含義 date3位元...