如何選擇數(shù)據(jù)類型及常見問題&解答

如何選擇數(shù)據(jù)類型

1.整數(shù)類型和浮點(diǎn)數(shù)類型

整數(shù)類型不能表示小數(shù),浮點(diǎn)數(shù)類型可以。TINYINT類型的取值范圍為0~255,BIGINT類型的取值范圍最大,最常用的整數(shù)類型是INT

浮點(diǎn)數(shù)類型包括FLOAT類型和DOUBLE類型。DOUBLE類型的精度比FLOAT類型高。如果需要精確到小數(shù)點(diǎn)后10位以上,應(yīng)該選擇DOUBLE類型。

2.浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型

當(dāng)插入值精度高于實(shí)際定義的精度時(shí),對(duì)于浮點(diǎn)數(shù),系統(tǒng)會(huì)自動(dòng)四舍五入,且不會(huì)報(bào)警,定點(diǎn)數(shù),系統(tǒng)會(huì)自動(dòng)截?cái)?,且?huì)出現(xiàn)警告。

在未指定精度的情況下,浮點(diǎn)數(shù)和定點(diǎn)有其默認(rèn)精度。FLOAT和DOUBLE型默認(rèn)會(huì)保存實(shí)際精度,這個(gè)精度與操作系統(tǒng)和硬件的精度有關(guān)。DECIMAL型默認(rèn)整數(shù)位為10,小數(shù)位為0,即默認(rèn)為整數(shù)。

在MySQL中,定點(diǎn)數(shù)精度比浮點(diǎn)數(shù)要高。而且,浮點(diǎn)數(shù)會(huì)出現(xiàn)誤差。如果對(duì)數(shù)據(jù)精度要求較高,應(yīng)選擇定點(diǎn)數(shù)。

3.CHAR和VARCHAR型

CHAR類型的長(zhǎng)度是固定的,而VARCHAR類型長(zhǎng)度在范圍內(nèi)可變。因此,VARCHAR類型占用的空間比CHAR類型小。而且,VARCHAR類型比CHAR類型靈活。對(duì)于長(zhǎng)度變化比較大的字符串類型,最好選擇VARCHAR類型。

但是,CHAR類型的處理速度比VARCHAR快,因此,對(duì)于長(zhǎng)度變化不大和查詢速度要求較高的字符串類型,最好選擇CHAR類型。

4.時(shí)間和日期類型

如果需要記錄日期和時(shí)間,可以選擇DATETIME類型和TIMESTAMP類型。DATETIME類型表示的時(shí)間范圍比TIMESTAMP類型大。因此,若需要時(shí)間范圍比較大,選擇DATATIME類型合適。TIMESTAMP類型的時(shí)間是根據(jù)時(shí)區(qū)來顯示的,如果需要顯示的時(shí)間與時(shí)區(qū)對(duì)應(yīng),應(yīng)該選擇TIMESTAMP類型。

5.ENUM類型和SET類型

ENUM類型最多有65535個(gè)成員,而SET類型最多包含64個(gè)成員。ENUM類型只能從成員中選擇一個(gè),而SET類型可以選擇多個(gè)(max64個(gè))。

因此,對(duì)于多個(gè)值選一個(gè)的,可以選擇ENUM類型,如:“性別”字段就可以定義成ENUM類型,因?yàn)橹挥小澳小?、“女”。?duì)于可以選取多個(gè)值的字段,可以選擇SET類型。如:“愛好”,因?yàn)榭赡苡卸喾N愛好。

6.TEXT類型和BLOB類型

TEXT類型只能存儲(chǔ)字符數(shù)據(jù)。而BLOB類型可以存儲(chǔ)二進(jìn)制數(shù)據(jù)。如果要存儲(chǔ)文章等純文本數(shù)據(jù),應(yīng)該選擇TEXT類型。如果需要存儲(chǔ)圖片等二進(jìn)制數(shù)據(jù),應(yīng)該選擇BLOB類型。

常見問題及解答

1.MySQL中什么數(shù)據(jù)類型可以存儲(chǔ)路徑?

CHAR、VARCHAR、TEXT等字符串類型均可,但如果路徑中使用 “\” 符號(hào),會(huì)被過濾,解決辦法:在路徑中用 “/” 或 “\\” 代替 “\” ? 。

2.MySQL中如何使用布爾類型?

在SQL標(biāo)準(zhǔn)中,存在BOOL和BOOLEAN類型。MySQL為了支持SQL標(biāo)準(zhǔn),也可以定義BOOL和BOOLEAN類型。但是,BOOL和BOOLEAN類型最后轉(zhuǎn)換成的是TINYINT(1)。在MySQL中,布爾類型等價(jià)于TINYINT(1)。

3.如果文章中同時(shí)存在文本和圖片,應(yīng)選擇哪種數(shù)據(jù)類型?

最好將圖片的url地址存在數(shù)據(jù)庫(kù)中,這樣就是純文本格式了,當(dāng)然,也可以選擇BLOB類型,但這樣查詢效率會(huì)很慢!

上個(gè)圖吧,喜歡玩螞蟻森林和螞蟻莊園


螞蟻莊園


螞蟻森林
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用心,不怕被對(duì)方識(shí)破, 而用心計(jì),不僅害怕對(duì)方識(shí)破, 而且一旦被對(duì)方識(shí)破, 你今后就是真心待他, 也會(huì)被認(rèn)為你是在...
    立信會(huì)計(jì)閱讀 298評(píng)論 0 0
  • 昨夜我喝了許多酒 月光下 我的刀刃 亮了 雪地里我饑餓地跑著 我的木柄彎曲了 我看見一只夜貓 睜著綠色的眼睛 我渴...
    張百酒閱讀 258評(píng)論 -1 7

友情鏈接更多精彩內(nèi)容