由于最近在做机房的时候数据库中出现了许多错误,所以今天总结一下数据库中数据类型的区别。
1.char
固定长度,会指定出有多少个字符,比如char(10)就是有十个字符。
2.varchar
是长度可变的字符,区分中英文,中文占两个字节,英文占一个字节。
3.nvarchar
是长度可变的字符,不区分中英文,每个字符都占两个字节。
一、char与varchar的区别:
varchar比char节省空间,char长度是固定的,而varchar的长度是可以变化的,比如存储字符串“qwer”,对于char(10),表示你存储的字符会占用10个字节,包含6个空字符。而使用varchar(10),只会占用4个字节的长度,10只是最大值,当存储的字符小于10时,会按照实际的长度来存储,节省了不少空间。
varchar比char效率差一些。
二、varchar与nvarchar的区别:
varchar(n)长度为n个字节的可变长度的数据,n的范围是1-8000之间。存储大小是输入数据的字节的实际长度,而不是n。
nvarchar(n)包含n个字符的可变长度的数据,n的范围是1-4000之间。存储大小是输入字符个数的两倍。
也就是说在varchar类型中,一个英文字母会占用一个字节,而一个汉字会占用两个字节。但是在nvarchar中,不管是英文还是中文,都会占用两个字节。
比如:我是abc,在varchar中占用2*2+3=7个字节的存储空间,在nvarchar中占用2*5=10个字节的存储空间。
举个例子,varchar(10)中可以输入10个字母,也可以输入5个汉字。nvarchar(10)中可以输入10个字母,也可以输入10个汉字,但是最多只能输入10个。
利用好数据类型可以让我们的数据库更规范,代码中遇到的问题也会变少。