A. 資料庫varchar和char的區別
char:
使用指定長度的固定長度表示的字元串;比如char(8),則資料庫會使用固定的8個位元組來存儲數據
,不足8為的字元串在其後補空字元;
varchar
在oracle中varchar跟char是一個類型;sqlserver中varchar相當於oracle中的varchar2
varchar2
用實際字元數+2個位元組來存儲的變長字元串;比如一個欄位定義為varchar(10),而實際存儲的內容為
『A』,則資料庫會用3個位元組來存儲該字元串,其中前兩個位元組用來存儲字元的長度;
在資料庫中的欄位,由於一個欄位大小不能超過一個block的長度,所以varchar和char都是最大為
8000個位元組,由於可能會存儲漢字,也就是一個字元用2個位元組來存儲,所以欄位中最大定義為varchar
(4000),而在plsql中,這個大小的限制變為32000左右,這是因為表示其大小的位元組只有兩個。
B. SQL中的char,varchar
應該不會去掉,當你輸入了6個字元時,剩下的多餘部分還會保留 所以輸出時還會有後面多餘空格,只是不顯示出來 在輸入數據時,如果超出了,不能輸入進去
C. SQL char 和varchar 用法上的區別是什麼
char會自動填充空格,varchar不會。所以varchar比較節省空間,但是檢索效率char高一點。用法不存在什麼區別。
舉個例子吧
欄位a為char(5)類型
欄位b為varchar(5)類型
向a,b中賦值'123'
a的結果是'123 ' (123+兩個空格)
b的結果是'123'
D. 寫sql 語句時,char和varchar,一般選用哪個
一般varchar選擇的多一點,因為varchar是可變長度,char是固定長度
雖然效率上char要高,但是空間上會浪費,舉個例子:
varchar(5),char(5)如果都賦值'abc',那麼varchar只用了3個字元空間
而char用了3個後會自動拿空格不滿,所以始終是會佔用5個字元空間
E. 在SQL server中,怎麼區別char跟varchar我是個小白。
char 數據不足長度時後邊補充空格;比如,你保存數據 xxx 到長度為10 的char型欄位,結果取出的數據時長度10,後邊有7個空格;
varchar 數據是什麼就存儲什麼
F. 資料庫中char和varchar的區別
資料庫中char和varchar的區別為:長度不同、效率不同、存儲不同。
一、長度不同
1、char類型:char類型的長度是固定的。
2、varchar類型:varchar類型的長度是可變的。
二、效率不同
1、char類型:char類型每次修改的數據長度相同,效率更高。
2、varchar類型:varchar類型每次修改的數據長度不同,效率更低。
三、存儲不同
1、char類型:char類型存儲的時候是初始預計字元串再加上一個記錄字元串長度的位元組,佔用空間較大。
2、varchar類型:varchar類型存儲的時候是實際字元串再加上一個記錄字元串長度的位元組,佔用空間較小。
G. 請問SQL資料庫中的char和varchar的區別
Char是固定長度的字元型,如果添加的字元長度不夠,SQL自動用空格補齊,
VarChar是不固定長度的字元型(只有最大長度)即可變長度的字元型,添加的字元長度不夠時,SQL不會用空格補齊。
H. sql varchar與char二者之間的區別
char是定長的,也就是char(10),輸入1個字元『a』,實際是a+9個空值。
所以你的@sl已經有10位值了,再+ 『 world』後面的都被截了,所以顯示'hello'
要用rtrim切掉右邊的空值
I. sql 中int nvarchar char VARchar 有什麼區別
1.int 類型:
從 -2^31 (-2,147,483,648) 到 2^31 - 1(2,147,483,647) 的整型數據(所有數字)。
存儲大小為 4 個位元組。int 的 SQL-92 同義字為 integer。
2. char類型:
對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組,CHAR存儲定長數據很方便,CHAR欄位上的索引效率極高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。因為是固定長度,所以速度效率高。比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。因為是固定長度,所以速度效率高。
3. VARCHAR存儲變長數據
如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼「+1」呢?這一個位元組用於保存實際使用了多大的長度。
Varchar類型:Varchar 的類型不以空格填滿,而Char則會填充滿為止,如varchar(100),但它的值只是"qian",所以它在資料庫中存的值就是"qian",而char 不一樣,如char(100),它的值是"qian",而實際上它在資料庫中是"qian "(qian後共有96個空格,就是把它填滿為100個位元組)。
注:由於char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉!
4. Nvarchar類型
為了與其他多種字元的轉換,如中文,音標等,對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個位元組。
varchar(n):變長型字元數據類型,存儲最長長度為8,000 個字元
nvarchar(n):可變長度 Unicode 數據,其最大長度為 4,000 字元.位元組的存儲大小是所輸入字元個數的兩倍,就是說它是雙位元組來存儲數據的。如果存儲數據如果存在單位元組時,它也是以雙位元組來佔用存儲空間的。
varchar一般適用於英文和數字,Nvarchar適用中文和其他字元,其中N表示Unicode常量,可以解決多語言字元集之間的轉換問題。
J. sql char 和 varchar 的區別
char會自動填充空格,varchar不會。所以varchar比較節省空間,但是檢索效率char高一點。用法不存在什麼區別。
舉個例子吧
欄位a為char(5)類型
欄位b為varchar(5)類型
向a,b中賦值'123'
a的結果是'123'(123+兩個空格)
b的結果是'123'