使用数据库储存文字的数据,在数据库中会有以下这些的型态可以设定
char, varchar, nchar, nvarchar
那么到底要用哪种型态比较适合,这些型态之间有何差异呢??

意义与差异

从这些字眼上来看,都是有char,差别在varn这两个字眼,那么就先来简单介绍一下这两个字眼代表的意义:

var:不定长度有多长存多长

nUnicode→无论英文、数字、中文、日文、...每个字都占2Byte

说明一下:

charnchar宣告的是固定的长度,因此如果宣告char(5),但是只放a这个字,那么就会补另外4个空白,会补空白补满是他的特性,而nchar(5)也是会放满5个字,但是每个字无论中英数都会用2Bytes来存放

varcharnvarchar都是不定长度,因此如果宣告varchar(5),但是只放a这个字,那么就会放一个a不会补空白。而如果宣告nvarhcar(5)那还是只放a这个字,但是会用2Bytes来存放。如果放了【】这个中文字,在varchar会占用2个位子,但是nvarchar指占用1个位子。

举个例子来看

假设有四个字段,分别放入【a1中】这样的字符串,比较一下这些的差异如下:

数据类型

内容

占位数

Byte

char(10)

a1+6个空白

10

10

varchar(10)

a1

4

1+1+2=4

nchar(10)

a1+7个空白

10

20

nvarchar(10)

a1

3

2*3=6

再来一个比较char(10)nchar(10)

 

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

char(10)

a

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

nchar(10)

a

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

因此在规画上,只要存放的数据有可能有中文,小喵就会加n。而除非确定数据固定会是几位不变,不然数据长度不特定就会宣告加上var

 

posted on 2008-06-08 10:58  topcat  阅读(314)  评论(0编辑  收藏  举报