mysql的數據類型(Data type)

正確地定義的表中的字段在數據庫的總體優化是很是重要的。咱們應該只使用真正須要使用類型和字段的大小; 若是知道只使用2個字符,就不使用10個字符寬定義一個字段。這些類型的字段(或列),也被稱爲數據類型,數據存儲這些字段之中。數據庫

MySQL使用許多不一樣的數據類型,整體上分爲三類:數字,日期時間和字符串類型。學習

1、數字數據類型

MySQL使用全部標準的ANSI SQL數字數據類型,因此,若是在學習MySQL以前,有接觸過其它不一樣的數據庫系統,那麼這些定義看起來很熟悉。下面列出了常見的數字數據類型及其說明:優化

INT - 正常大小的整數,能夠帶符號。若是是有符號的,它容許的範圍是從-2147483648到2147483647。若是是無符號,容許的範圍是從0到4294967295。 能夠指定多達11位的寬度。對象

TINYINT - 一個很是小的整數,能夠帶符號。若是是有符號,它容許的範圍是從-128到127。若是是無符號,容許的範圍是從0到255,能夠指定多達4位數的寬度。排序

SMALLINT - 一個小的整數,能夠帶符號。若是有符號,容許範圍爲-32768至32767。若是無符號,容許的範圍是從0到65535,能夠指定最多5位的寬度。字符串

MEDIUMINT - 一箇中等大小的整數,能夠帶符號。若是有符號,容許範圍爲-8388608至8388607。 若是無符號,容許的範圍是從0到16777215,能夠指定最多9位的寬度。數據類型

BIGINT - 一個大的整數,能夠帶符號。若是有符號,容許範圍爲-9223372036854775808到9223372036854775807。若是無符號,容許的範圍是從0到18446744073709551615. 能夠指定最多20位的寬度。二進制

FLOAT(M,D) - 不能使用無符號的浮點數字。能夠定義顯示長度(M)和小數位數(D)。這不是必需的,而且默認爲10,2。其中2是小數的位數,10是數字(包括小數)的總數。小數精度能夠到24個浮點。時間戳

DOUBLE(M,D) - 不能使用無符號的雙精度浮點數。能夠定義顯示長度(M)和小數位數(D)。 這不是必需的,默認爲16,4,其中4是小數的位數。小數精度能夠達到53位的DOUBLE。 REAL是DOUBLE同義詞。數據

DECIMAL(M,D) - 非壓縮浮點數不能是無符號的。在解包小數,每一個小數對應於一個字節。定義顯示長度(M)和小數(D)的數量是必需的。 NUMERIC是DECIMAL的同義詞。

2、日期和時間類型

MySQL的日期和時間數據類型包括:

DATE - 以YYYY-MM-DD格式的日期,在1000-01-01和9999-12-31之間。 例如,1973年12月30日將被存儲爲1973-12-30。

DATETIME - 日期和時間組合以YYYY-MM-DD HH:MM:SS格式,在1000-01-01 00:00:00 到9999-12-31 23:59:59之間。例如,1973年12月30日下午3:30,會被存儲爲1973-12-30 15:30:00。

TIMESTAMP - 1970年1月1日午夜之間的時間戳,到2037的某個時候。這看起來像前面的DATETIME格式,無需只是數字之間的連字符; 1973年12月30日下午3點30分將被存儲爲19731230153000(YYYYMMDDHHMMSS)。

TIME - 存儲時間在HH:MM:SS格式。

YEAR(M) - 以2位或4位數字格式來存儲年份。若是長度指定爲2(例如YEAR(2)),年份就能夠爲1970至2069(70〜69)。若是長度指定爲4,年份範圍是1901-2155,默認長度爲4。

3、字符串類型

雖然數字和日期類型比較有意思,但存儲大多數數據均可能是字符串格式。 下面列出了在MySQL中常見的字符串數據類型。

CHAR(M) - 固定長度的字符串是以長度爲1到255之間個字符長度(例如:CHAR(5)),存儲右空格填充到指定的長度。 限定長度不是必需的,它會默認爲1。

VARCHAR(M) - 可變長度的字符串是以長度爲1到255之間字符數(高版本的MySQL超過255); 例如: VARCHAR(25). 建立VARCHAR類型字段時,必須定義長度。

BLOB 或 TEXT - 字段的最大長度是65535個字符。 BLOB是「二進制大對象」,並用來存儲大的二進制數據,如圖像或其餘類型的文件。定義爲TEXT文本字段還持有大量的數據; 二者之間的區別是,排序和比較上存儲的數據,BLOB大小寫敏感,而TEXT字段不區分大小寫。不用指定BLOB或TEXT的長度。

TINYBLOB 或 TINYTEXT - BLOB或TEXT列用255個字符的最大長度。不指定TINYBLOB或TINYTEXT的長度。

MEDIUMBLOB 或 MEDIUMTEXT - BLOB或TEXT列具備16777215字符的最大長度。不指定MEDIUMBLOB或MEDIUMTEXT的長度。

LONGBLOB 或 LONGTEXT -  BLOB或TEXT列具備4294967295字符的最大長度。不指定LONGBLOB或LONGTEXT的長度。

ENUM - 枚舉,這是一個奇特的術語列表。當定義一個ENUM,要建立它的值的列表,這些是必須用於選擇的項(也能夠是NULL)。例如,若是想要字段包含「A」或「B」或「C」,那麼能夠定義爲ENUM爲 ENUM(「A」,「B」,「C」)也只有這些值(或NULL)才能用來填充這個字段。

相關文章
相關標籤/搜索