最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 21:09:39
文檔

深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解

深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解:很多開發(fā)者進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的時(shí)候往往并沒有太多的考慮char, varchar類型,有的是根本就沒注意,因?yàn)榇鎯r(jià)格變得越來越便宜了,忘記了最開始的一些基本設(shè)計(jì)理論和原則,這點(diǎn)讓我想到了現(xiàn)在的年輕人,大手一揮一把人民幣就從他手里溜走了,其實(shí)我想不管是做人
推薦度:
導(dǎo)讀深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解:很多開發(fā)者進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的時(shí)候往往并沒有太多的考慮char, varchar類型,有的是根本就沒注意,因?yàn)榇鎯r(jià)格變得越來越便宜了,忘記了最開始的一些基本設(shè)計(jì)理論和原則,這點(diǎn)讓我想到了現(xiàn)在的年輕人,大手一揮一把人民幣就從他手里溜走了,其實(shí)我想不管是做人

很多開發(fā)者進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的時(shí)候往往并沒有太多的考慮char, varchar類型,有的是根本就沒注意,因?yàn)榇鎯r(jià)格變得越來越便宜了,忘記了最開始的一些基本設(shè)計(jì)理論和原則,這點(diǎn)讓我想到了現(xiàn)在的年輕人,大手一揮一把人民幣就從他手里溜走了,其實(shí)我想不管是做人也好,做開發(fā)也好,細(xì)節(jié)的把握直接決定很多東西。當(dāng)然還有一部分人是根本就沒弄清楚他們的區(qū)別,也就隨便選一個(gè)。在這里我想對他們做個(gè)簡單的分析,當(dāng)然如果有不對的地方希望大家指教。

1、CHAR。CHAR存儲定長數(shù)據(jù)很方便,CHAR字段上的索引效率級高,比如定義char(10),那么不論你存儲的數(shù)據(jù)是否達(dá)到了10個(gè)字節(jié),都要占去10個(gè)字節(jié)的空間,不足的自動用空格填充,所以在讀取的時(shí)候可能要多次用到trim()。

2、VARCHAR。存儲變長數(shù)據(jù),但存儲效率沒有CHAR高。如果一個(gè)字段可能的值是不固定長度的,我們只知道它不可能超過10個(gè)字符,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實(shí)際長度是它的值的實(shí)際長度+1。為什么“+1”呢?這一個(gè)字節(jié)用于保存實(shí)際使用了多大的長度。從空間上考慮,用varchar合適;從效率上考慮,用char合適,關(guān)鍵是根據(jù)實(shí)際情況找到權(quán)衡點(diǎn)。

3、TEXT。text存儲可變長度的非Unicode數(shù)據(jù),最大長度為2^31-1(2,147,483,647)個(gè)字符。

4、NCHAR、NVARCHAR、NTEXT。這三種從名字上看比前面三種多了個(gè)“N”。它表示存儲的是Unicode數(shù)據(jù)類型的字符。我們知道字符中,英文字符只需要一個(gè)字節(jié)存儲就足夠了,但漢字眾多,需要兩個(gè)字節(jié)存儲,英文與漢字同時(shí)存在時(shí)容易造成混亂,Unicode字符集就是為了解決字符集這種不兼容的問題而產(chǎn)生的,它所有的字符都用兩個(gè)字節(jié)表示,即英文字符也是用兩個(gè)字節(jié)表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較起來,nchar、nvarchar則最多存儲4000個(gè)字符,不論是英文還是漢字;而char、varchar最多能存儲8000個(gè)英文,4000個(gè)漢字??梢钥闯鍪褂胣char、nvarchar數(shù)據(jù)類型時(shí)不用擔(dān)心輸入的字符是英文還是漢字,較為方便,但在存儲英文時(shí)數(shù)量上有些損失。

所以一般來說,如果含有中文字符,用nchar/nvarchar,如果純英文和數(shù)字,用char/varchar
我把他們的區(qū)別概括成:
CHAR,NCHAR 定長,速度快,占空間大,需處理
VARCHAR,NVARCHAR,TEXT 不定長,空間小,速度慢,無需處理
NCHAR、NVARCHAR、NTEXT處理Unicode碼

您可能感興趣的文章:

  • C語言中char*和char[]用法區(qū)別分析
  • 基于C語言char與unsigned char的區(qū)別介紹
  • c語言中g(shù)etch,getche,getchar的區(qū)別
  • mysql中char與varchar的區(qū)別分析
  • sql中varchar和nvarchar的區(qū)別與使用方法
  • char str[] 與 char *str的區(qū)別詳細(xì)解析
  • 深入理解char *a與char a[]的區(qū)別
  • 聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解

    深入char、varchar、text和nchar、nvarchar、ntext的區(qū)別詳解:很多開發(fā)者進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的時(shí)候往往并沒有太多的考慮char, varchar類型,有的是根本就沒注意,因?yàn)榇鎯r(jià)格變得越來越便宜了,忘記了最開始的一些基本設(shè)計(jì)理論和原則,這點(diǎn)讓我想到了現(xiàn)在的年輕人,大手一揮一把人民幣就從他手里溜走了,其實(shí)我想不管是做人
    推薦度:
    標(biāo)簽: 的區(qū)別 te text
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top