数据库数据类型

char

varchar

text

ntext

bigint

int

smallint

tinyint

bit

的区别及数据库的数据类型

 

 

基础:

 

char

varchar

text

nchar

nvarchar

ntext

的区别

 

1

CHAR

CHAR

存储定长数据很方便,

CHAR

字段上的索引效率级高,

比如定义

char(10)

,那么不论你存储的数据是否达到了

10

个字节,

都要占去

10

个字节的空间

,

不足的自动用空格填充。

 

 

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 

数据类型时不用担心输入的字符是英文还是汉字,

较为方便,

但在存

储英文时数量上有些损失。

  

 

进一步学习:

 

char

varchar

text

ntext

bigint

int

smallint

tinyint

bit

的区别及数据库的数据类型

 

 

Varchar 

对每个英文

(ASCII)

字符都占用

2

个字节,对一个汉字也只

占用两个字节

 

char 

对英文

(ASCII)

字符占用

1

个字节,对一个汉字占用

2

个字节

Varchar 

的类型不以空格填满,比如

varchar(100)

,但它的值只是

"qian",

则它的值就是

"qian"

char 

不一样,比如

char(100),

它的

值是

"qian"

,而实际上它在数据库中是

"qian "(qian

后共有

96

个空

格,就是把它填满为

100

个字节

)

。由于

char

是以固定长度的,所以

它的速度会比

varchar

快得多

!

但程序处理起来要麻烦一点,要用

trim

之类的函数把两边的空格去掉

ntext 

可变长度

 Unicode 

数据的最大长度为

 230 - 1 (1,073,741,823) 

字符。

存储大小是所输入字符个数的两倍

(以字节为单位)

ntext 

 

SQL-92 

中的同义词是

 national text

 

 

text 

服务器代码页中的可变长度非

 Unicode 

数据的最大长度为

 231-1 

(2,147,483,647) 

个字符。

当服务器代码页使用双字节字符时,

存储

量仍是

 2,147,483,647 

字节。

存储大小可能小于

 2,147,483,647 

节(取决于字符串)

 

bigint

-2^63(-9223372036854775808)

2^63-1(9223372036854775807)

的整型数据,存储大小为

 8 

个字节。

 

 

int

:从

-2^31(-2,147,483,648)

2^31-1(2,147,483,647)

的整型数

据,存储大小为

 4 

个字节。

 

 

smallint

:从

-2^15(-32,768)

2^15-1(32,767)

的整数数据,存储

大小为

 2 

个字节。

 

 

tinyint

:从

0

255

的整数数据,存储大小为

 1 

字节。

 

 

bit

1

0

的整数数据,存储大小为

 1 

字节。

 

你可能感兴趣的:(数据库数据类型)