資料庫變長型
『壹』 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常量,可以解決多語言字元集之間的轉換問題。