深入了解mysql的4種常用、重要的數(shù)據(jù)類型
為了實現(xiàn)這一目標,它需要我們在數(shù)據(jù)庫系統(tǒng)的常用數(shù)據(jù)類型有充分的認識。
下面我們來看一下mysql的重要數(shù)據(jù)類型
1、數(shù)值類型可以劃分為數(shù)值類型:整型,浮點十進制類型。
所謂的“十進制”是指decimal和numeric,他們是同一類型的。嚴格地說,它不是一個數(shù)字類型,因為他們實際上是作為字符串存儲,每一個數(shù)字值(包括小數(shù)點)占一個字節(jié)的存儲空間,所以這種類型的消耗大量的存儲空間,但它的優(yōu)點是它的價值不會失去做浮點數(shù)計算精度,它更適合一些計算精度要求高,如價格計算。浮動取決于不同精度的類型可以是float或double。它們的優(yōu)點是小數(shù)的精度,F(xiàn)LOAT可以表示非常小的值,可以是最小的值約1.17E-38(0.000 … 0117,小數(shù)點后的37零),雙重可以表達更小的數(shù),最小的數(shù)可以約2.22E-308(0.000 … 0222,小數(shù)點以及后跟307個零)的小數(shù)。float和double分別為4字節(jié)和8字節(jié)的存儲空間。
對于整型,在MySQL中有很多不同類型的整數(shù),在設(shè)計數(shù)據(jù)庫表,我們可以有一個字節(jié)TINYINT或8字節(jié)BIGINT等,所以我們應(yīng)該把過多考慮哪個類型來使用,以獲得最小的存儲空間,而不會失去任何準確性值。
TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT 1字節(jié),2字節(jié),3字節(jié),4字節(jié)和8字節(jié)。對于無符號整數(shù),這些類型能表示的最大整數(shù)是分別255,65535,16777215,4294967295 18446744073709551615。如果我們需要保存用戶的年齡,TINYINT就夠了;如果是自增的ID,我們應(yīng)該使用MEDIUMINT而不是INT,INT還 是太大了。很多數(shù)據(jù)表并不會達到MEDIUMINT的范圍
2、日期時間輸入的日期和時間類型比較簡單
如DATE,TIME,DATETIME,TIMESTAMP和YEAR。如果我們只需要關(guān)心的日期,但沒有分秒我們應(yīng)該使用Date,而不是DATETIME,但DATETIME是其中最常用的,一切按實際需要設(shè)計
3、字符類型不要以為字符類型僅僅是CHAR
CHAR和VARCHAR的區(qū)別是,CHAR是固定長度。如果你定義一個字段CHAR(10),那么無論多少字節(jié)的數(shù)據(jù),這將需要10個字節(jié)的空間;對于18位的身份證號碼,則應(yīng)該使用Char(18),
VARCHAR是可變長度的,如果我們有一個字段的值有不同的長度,那么我們應(yīng)該使用VARCHAR 。
4、枚舉和集合類型枚舉(ENUM)類型
最多可以定義到65,535種不同的字符串從中做出選擇。
這可能需要取決于有多少個值在枚舉類型中的一個或兩個字節(jié)。集合(SET)類型,最多可以有64個不同的成員,你可以選擇零個或多個成員,集合成員的數(shù)量決定。例如,在SQLServer中,你可以使用BIT類型來表示性別(男/女),但MySQL中,BIT在不同版本數(shù)據(jù)庫中取值有差異,而使用TINTINT有時浪費的,你可以用ENUM('男','女'),這樣可以節(jié)約很大空間
相關(guān)文章
Mysql5.7.14安裝配置方法操作圖文教程(密碼問題解決辦法)
本篇文章主要涉及mysql5.7.14用以往的安裝方法安裝存在的密碼登錄不上,密碼失效等問題的解決辦法,需要的朋友參考下吧2017-01-01mysql Sort aborted: Out of sort memory, consider increasing
這篇文章主要介紹了mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解決方法,需要的朋友可以參考下2016-05-05Mysql中的排序規(guī)則utf8_unicode_ci、utf8_general_ci的區(qū)別總結(jié)
Mysql中utf8_general_ci與utf8_unicode_ci有什么區(qū)別呢?在編程語言中,通常用unicode對中文字符做處理,防止出現(xiàn)亂碼,那么在MySQL里,為什么大家都使用utf8_general_ci而不是utf8_unicode_ci呢?2014-04-04后端服務(wù)器中如何實現(xiàn)MySQL數(shù)據(jù)庫操作接口
文章主要介紹了如何在Node.js中使用mysql模塊連接MySQL數(shù)據(jù)庫,并通過Express框架實現(xiàn)數(shù)據(jù)庫操作接口,前端可以通過Axios庫與后端進行交互,實現(xiàn)數(shù)據(jù)操作2024-11-11Mysql通過explain分析定位數(shù)據(jù)庫性能問題
這篇文章主要介紹了Mysql通過explain分析定位數(shù)據(jù)庫性能問題,明確SQL在Mysql中實際的執(zhí)行過程是怎樣的,如果查詢字段沒有索引則增加索引,如果有索引就要分析為什么沒有用到索引,本文詳細講解,需要的朋友可以參考下2023-01-01