基礎資料型別長度

2022-03-25 20:56:38 字數 2726 閱讀 8715

1、乙個字母佔乙個位元組,乙個漢字佔兩個位元組,乙個位元組佔8位(bit)。資料儲存是以「位元組」(byte)為單位,資料傳輸是以大多是以「位」(bit,又名「位元」)為單位,乙個位就代表乙個0或1(即二進位制),每8個位(bit,簡寫為b)組成乙個位元組(byte,簡寫為b),是最小一級的資訊單位。1kb=1024b,1b=8bit;

2、char、nchar、varchar、nvarchar、text、ntext的區別 

型別

長度

使用說明

長度說明

char(n)

定長索引效率高 程式裡面使用trim去除多餘的空白

n 必須是乙個介於 1 和 8,000 之間的數值,儲存大小為 n 個位元組

varchar(n)

變長效率沒char高 靈活

n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組

text(n)

變長非unicode資料

不用指定長度

nchar(n)

定長處理unicode資料型別(所有的字元使用兩個位元組表示)

n 的值必須介於 1 與 4,000 之間。儲存大小為 n 位元組的兩倍

nvarchar(n)

變長處理unicode資料型別(所有的字元使用兩個位元組表示)

n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零

ntext(n)

變長處理unicode資料型別(所有的字元使用兩個位元組表示)

不用指定長度

1、char。char儲存定長資料很方便,char欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要占去10個位元組的空間,不足的自動用空格填充,所以在讀取的時候可能要多次用到trim()。

2、varchar。儲存變長資料,但儲存效率沒有char高。

如果乙個字段可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 varchar(10)是最合算的。varchar型別的實際長度是它的值的實際長度+1。為什麼「+1」呢?這乙個位元組用於儲存實際使用了多大的長度。

從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。

3、text。text儲存可變長度的非unicode資料,最大長度為2^31-1(2,147,483,647)個字元。

4、nchar、nvarchar、ntext。這三種從名字上看比前面三種多了個「n」。它表示儲存的是unicode資料型別的字元。我們知道字元中,英文本元只需要乙個位元組儲存就足夠了,但漢字眾多,需要兩個位元組儲存,英文與漢字同時存在時容易造成混亂,unicode字符集就是為了解決字符集這種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文本元也是用兩個位元組表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較起來,nchar、nvarchar則最多儲存4000個字元,不論是英文還是漢字;而char、varchar最多能儲存8000個英文,4000個漢字。可以看出使用nchar、nvarchar資料型別時不用擔心輸入的字元是英文還是漢字,較為方便,但在儲存英文時數量上有些損失。

一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar

它們的區別概括成:

char,

nchar 定長,速度快,佔空間大,需處理

varchar,nvarchar,text 不定長,空間小,速度慢,無需處理

nchar、nvarchar、ntext處理unicode碼

varchar(n)

長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。

nvarchar(n)

包含 n 個字元的可變長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。

兩欄位分別有字段值:我和coffee

那麼varchar欄位佔2×2+6=10個位元組的儲存空間,而nvarchar欄位佔8×2=16個位元組的儲存空間。

如字段值只是英文可選擇varchar,而字段值存在較多的雙位元組(中文、韓文等)字元時用nvarchar

如果佈署的主機是英文作業系統,並且不支援中文環境,那問題就出來了.所有的varchar欄位在儲存中文的時候都會變成亂碼(顯示為??).而且一般情況下你不會知道這是因為你採用了錯誤的資料型別來儲存所造成的,你會試著去裝中文字型,試著去設定作業系統的語言環境...這些都不能解決問題,唯一能解決問題的是把資料庫欄位的型別個性為nvarchar(或者nchar).對專案管理比較熟悉的朋友應該都知道,到佈署階段再來修改資料庫是乙個很恐怖的事情.使用nvarchar的另乙個非常好處就是在判斷字串的時候可以不需要考慮中英文兩種字元的差別.

C C 資料型別長度

我們在編寫 c c 時肯定希望在32位和64位系統都能正常執行,那麼我們就需要注意基本資料型別的長度在32位與64位中的變化 另外這種變化還與編譯器相關。64位 gcc 是 lp64 即 long 和 pointer 是64位,具體的 gcc 編譯器 32 位 64位 char 1 1short 2...

資料型別及其長度

c c 資料型別 1 整形 int long 2 字元型 char wchar t 3 布林型 bool 4 浮點型 float double 5 指標 從表中可以看出這麼幾個問題,int型別在64位系統下竟然是4個位元組32位的。還有,這些玩意兒到底跟什麼有關係?是誰在控制著?從網上扒了各種解釋,...

資料型別基礎資料型別

資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...