varchar與char之間有何差別

2022-03-19 10:08:27 字數 1382 閱讀 9575

1樓:

字串,字元

程式設計師中 相當於:string 和 char

2樓:匿名使用者

在sql server中,用於儲存字元資料的資料型別一共有兩組:

unicode(nchar,nvarchar,ntext)和非unicode(char,varchar,text),合理的選擇字元欄位的資料型別,有助於提高處理效率,降低資料儲存空間的使用。

下面是選擇字元欄位資料型別的參考標準:

(1) 可儲存

選擇的欄位型別必須能完全儲存需要儲存的資料,而不會導致資料丟失。比如說,儲存5000個純英文字母,如果用非unicode 型別,就可以用varchar(或char),而使用unicode型別的話,就必須用ntext,因為unicode 一律用雙位元組編碼,5000個英文字母就是5000個字元(10000位元組),超過了nvarchar(或nchar)支援的最大字元數4000。

(2) 相容性

如果要儲存的字元資料包含了雙位元組字元資料(比如中文漢字),而且要在多種語言的作業系統環境下處理的話,為了避免在不同國家/地區的**頁之間轉換資料而導致轉化錯誤,應該選擇使用unicode資料型別(nchar,nvarchar,ntext)。

(3) 處理效率和儲存空間

從資料處理效率上來講,各種資料型別的處理效率從高到低依次是:char( 或nchar)、varchar(或nvarchar)、text(或ntext)。

char( 或nchar)用於儲存單據票號、身份證號碼這類固定(或者比較固定)長度的資料,如果儲存的資料長度小於定義的長度,則會在儲存的資料後面填充空格。所以它始終佔用與欄位定義長度相同的儲存空間。

varchar( 或nvarchar)用於儲存公司名稱、地址資訊這類長度不固定的資料,它佔用的儲存空間根據實際儲存的資料長度確定。

text(或ntext)用於儲存前面四種資料型別無法儲存的資料。由於它的資料一般不儲存在資料行中,在資料處理和檢索時,要從另外的地址讀取資料,所以它的效率在幾種字元型別中是最低的。

總結:①從儲存空間的佔用率上來說,無論是否是單位元組字元資料,unicode資料型別(nchar,nvarchar,ntext)一律用2個位元組表示,所以在儲存單位元組字元資料時,unicode資料型別(nchar,nvarchar,ntext)比非unicode資料型別(char,varchar,text)耗用更多的儲存空間。

②char(或者nchar)儲存的資料如果小於定義的長度的話,則會在尾部填充空格,所以如果採用char(或者nchar)來儲存資料長度不固定的資料,就會浪費大量的儲存空間。

varchar 與 nvarchar的區別

如果這個欄位儲存的大部分資料是英文或者數字的話,就定為」varchar」,

大部分資料是中文的話,就定為」nvarchar」

char資料型別與數值型別之間的轉換什麼是資料型別?什麼是數值型別

char資料型別與數值型別的整型是互通的,他們在記憶體中儲存的本質是相同的,只是儲存的範圍不同。char資料型別佔1個儲存位元組,整型可佔2 4 8位元組。資料型別指的是資料的儲存方式,包括所佔記憶體空間的大小,取值範圍及其可進行的操作等。數值型別指的是表示數量 可以進行數值運算的資料型別。在c語言...

C中的int和char之間的轉換問題

這要用到ascii碼的知識,粗略講一下 字元 0 的ascii碼為 48,然後是 1 2 3 9 字元 空格 的ascii碼為32.字元 a 的ascii碼為65,然後是 b c z 字元 a 的ascii碼為97,然後是 b c z 所以,把一個數字字元ch,轉為一個整數,就是ch 0 當然ch ...

年齡與輩分之間有什麼區別,年齡與輩份之間有什麼區別?

親屬稱謂是以輩分劃分的,不受年齡限制,哥哥比弟弟大幾歲,哥哥的孩子又比弟弟的孩子大幾歲,幾 代之後,大門的後代與小門的後代相比,同輩人可能差上幾十歲,並不因此而影響輩分關係,常常會有長鬍 子的孫子或懷抱著的爺爺。所以,漢族常 大門轉小輩 之說。親屬稱呼也用於社會上鄰里之間或素不相識的人之間,以表示親...