MySQL如何選擇數據類型

在MySQL中建立表 時,須要考慮爲字段選擇那種數據類型是最合適的。只有選擇了合適的數據類型,才能mysql

提升數據庫的效率。 ———————————————————————————————————————————————sql

1.整數類型和浮點數類型數據庫

整數類型和浮點數類型最大的區別在於可否表達小數。整數類型不能表達小數,而浮點數類型能夠表示小數。不一樣的整數類型的取值範圍不一樣。TINYINT類型的取值範圍爲0~255。若是字段的最大值不超過255,那選擇TINYINT類型就足夠了。BIGINT類型的取值範圍最大。最經常使用的整數類型是INT類型。學習

浮點數類型包括FLOAT類型和DOUBLE類型。DOUBLE類型的精度比FLOAT類型高。若是須要精確到小數點後10位以上,就應該選擇DOUBLE類型,而不該該選擇FLOAT類型。 ———————————————————————————————————————————————操作系統

2.浮點數類型和定點數類型.net

對於浮點數和定點數,當插入值的精度高於實際 定義的精度時,系統會自動進行四捨五入處理。其目的是爲了使該值的精度達到要求。浮點數進行四捨五入時系統不會報警。定點數會出現警告。blog

在未指定精度的狀況下,浮點數和定點數有其默認的精度。FLOAT型和DOULBE型默認會保存實際精度。這個精度與操做系統和硬件的精度有關。DECIMAL型默認整數位爲10,小數位爲0,即默認爲整數。圖片

在 MySQL中,定點數精度比浮點數 要高。 並且,浮點數會出現偏差。若是要對數據的精度要求比較高,應該選擇定點數。字符串

———————————————————————————————————————————————get

3.CHAR類型和VARCHAR類型

CHAR類型的長度是固定的,而VARCHAR類型的長度是在範圍內可變的。所以,VARCHAR類型佔用的空間比CHAR類型小,並且,VARCHAR類型比CHAR類型靈活。對於長度變化比較大的字符串類型,最好是選擇VARCHAR類型。

雖然CHAR類型佔用的空間比較大,可是CHAR類型的處理速度比VARCHAR的快。所以,對於長度變化不大和查詢速度要求較高的字符串類型。最好選擇CHAR類型。

———————————————————————————————————————————————

4.時間和日期類型

YEAR類型只表示年份。若是 只須要記錄年份,選擇YEAR類型能夠節約空間。TIME類型只表示時間。若是隻須要記錄時間,選擇TIME類型是最合適的。DATE類型只表示日期。若是隻須要記錄日期,選擇DATE類型是最合適的。

若是須要記錄日期和時間,能夠選擇DATETIME類型和TIMESTAMP類型。DATETIME類型表示的時間範圍比TIMESTAMP類型大。所以,若須要的時間範圍比較大,選擇DATETIME類型比較合適。TIMESTAMP類型的時間是根據時區來顯示的。若是須要顯示的時間與時區對應。那就應該選擇TIMESTAMP類型。

———————————————————————————————————————————————

5. ENUM類型和SET類型

ENUM類型最多能夠有65535個成員,而SET類型最多隻能包含64個成員。二者的取值只能在成員列表中選取。ENUM類型只能從成員中選擇一個,而SET類型能夠選擇多個。

所以,對於多個值中選取一個的,能夠選擇ENUM類型。例如,"性別"字段能夠定義爲ENUM類型。由於只有在"男"和"女"中選其中一個。對於 能夠選取多個值的字段,能夠選擇SET類型。例如,"愛好"字段能夠選擇SET類型,由於可能有多種愛好。

———————————————————————————————————————————————

6. TEXT類型和BLOB類型

TEXT類型與BLOB類型很相似。TEXT類型存儲只能存儲字符數據。而BLOB類型能夠用於存儲二進制數據。 若是須要存儲文章等純文本的數據,應該選擇TEXT類型。若是須要存儲圖片等二進制的數據,應該選擇BLOB類型。

TEXT類型包括TINYTEXT,TEXT,MEDUIUMTEXT和LONGTEXT。這四者最大的不一樣是內容給的長度不一樣。TINYTEXT類型容許的長度最小, LONGTEXT類型容許的長度最大。BLOB類型也是如此。

———————————————————————————————————————————————

學習資料:

《mysql入門很簡單》

http://blog.csdn.net/shaobingj126/article/details/7930270

相關文章
相關標籤/搜索