Sql server char,nchar,varchar與Nvarchar的區別
訪問了木子書房,重溫了char, nchar, varchar以及Nvarchar,於是記錄下來,希望可以與別人共享,也方便自己以後查詢。當然這不是抄襲噢,只是借鑑一下噢
1. char型別: 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組,CHAR儲存定長資料很方便,CHAR欄位上的索引效率極高,比如定義 char(10),那麼不論你儲存的資料是否達 到了10個位元組,都要佔去10個位元組的空間。因為是固定長度,所以速度效率高。比如定義 char(10),那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間。因為是固定長度,所以速度效率高。
2. 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之類的函式把兩邊的空格去掉!
3. Nchar型別和Nvarchar型別是怎麼一回事呢?為了與其他多種字元的轉換,如中文,音標等,對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個位元組。
varchar(n):變長型字元資料型別,儲存最長長度為8,000 個字元
nvarchar(n):可變長度 Unicode 資料,其最大長度為 4,000 字元.位元組的儲存大小是所輸入字元個數的兩倍,就是說它是雙位元組來儲存資料的。如果儲存資料如果存在單位元組時,它也是以雙位元組來佔用儲存空間的。
varchar一般適用於英文和數字,Nvarchar適用中文和其他字元,其中N表示Unicode常量,可以解決多語言字符集之間的轉換問題
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-625742/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- char,nchar,varchar,nvarchar的區別和特點
- MySQL中資料型別(char(n)、varchar(n)、nchar(n)、nvarchar(n)的區別)MySql資料型別
- Oracle CHAR,VARCHAR,VARCHAR2,nvarchar型別的區別與使用Oracle型別
- Oracle 資料型別CHAR, NCHAR, VARCHAR2, NVARCHAR2Oracle資料型別
- 【基礎】Oracle CHAR,VARCHAR,VARCHAR2,nvarchar型別的區別與使用Oracle型別
- char nchar varchar2 nvarchar2 區別-Oracle (varchar2 max 4K, 2K漢字)Oracle
- SQL插入語句中有單引號 && SQL中char nchar varchar nvarchar的區別 && Java中字元(串)和數值型別的轉換SQLJava字元型別
- Sql Server 參考:char與varchar的選擇SQLServer
- varchar2 與 nvarchar2 區別
- varchar和char的區別
- char ,varchar2和varchar的區別
- oracle中char與varchar2的區別Oracle
- Oracle中NVARCHAR2與VARCHAR2的區別Oracle
- MySQL字元資料型別char與varchar的區別MySql字元資料型別
- char和varchar2的區別
- 資料庫中varchar和Nvarchar區別與聯絡資料庫
- MySQL中CHAR和VARCHAR區別MySql
- 談MySQL中char varchar區別MySql
- VARCHAR2(N CHAR)與VARCHAR2(N)的區別[Oracle基礎]Oracle
- MySQL 中 VARCHAR 最大長度及 CHAR 和 VARCHAR 的區別MySql
- Mysql中varchar與char的區別以及varchar(30)中的30代表的涵義MySql
- NTMySQL中varchar和char型別的區別heeMySql型別
- Oracle 中varchar2 和nvarchar2區別Oracle
- char(n)和varchar2(n)區別
- mysql的varchar(N)和int(N)的含義及其與char區別MySql
- MySQL資料型別操作(char與varchar)MySql資料型別
- 【區別】Oracle官方文件中有關NVARCHAR2、VARCHAR2和VARCHAR資料型別的描述Oracle資料型別
- 應用中避免使用char/nchar型別型別
- MySQL中varchar和char定義長度是字元,與Oracle nvarchar2類似MySql字元Oracle
- 過程需要型別為 'ntext/nchar/nvarchar' 的引數 '@statement'型別
- 關於mysql設定varchar 欄位的預設值''和null的區別,以及varchar和char的區別MySqlNull
- 【基礎】ORACLE CHAR 與 VARCHAROracle
- sql server agent與sql server有什麼區別 ?SQLServer
- Oracle的資料型別:char/varchar2Oracle資料型別
- 資料庫char varchar nchar nvarchar,編碼Unicode,UTF8,GBK等,Sql語句中文前為什麼加N(一次線上資料儲存亂碼排查)資料庫UnicodeSQL
- char str[]和char *str的區別
- MySQL CHAR和VARCHAR資料型別介紹MySql資料型別
- [20120222]Nchar以及nvarchar2型別型別