【前言】
昨天在验项目的时候,师傅提到了字符串类型的数据怎么存储在数据库中,我回答的似是而非,所以有了今天的这篇博客,让我再次详细的去了解和熟悉存储字符串类型数据在数据库中应该要建立怎样的表结构,如何节省系统资源。
【正文】
Char与Varchar
char类型的长度是不可变的,长度为n个字节,取值范围1~8 000,存储大小是n个字节.varchar的长度是可以改变的,n的取值范围为1-8 000 .max指定最大存储大小是2 ^ 31-1个字节。存储大小是输入数据的实际长度加两个字节。所输入数据的长度可以为0个字符。
如果定义了一个炭[20]和VARCHAR [20],如果存进去的是的数据是 'ABCD',炭所占的长度依据是20,除了保存 'ABCD' 数据之外,后面还要加16个空格,这些空就是造成了资源的浪费。而VARCHAR就立马把长度变成了4,不需要占用多余的内存空间。在取数据的时候炭类型的数据要用修剪()去掉多余的空格,而VARCHAR类型的数据则不需要。
炭的存储方式是对英文字符占用一个字节,对一个汉字占用两个字节,而VARCHAR的存储方式是每个英文字符都占用两个字节,汉字也占用2个字节
Nchar与Nvarchar的
这两个数据是Unicode类型的数据类型,如需了解,请点击Unicode。它为广泛使用的大部分字符定义了一个单一编码方案,所有的计算机都用单一的Unicode标准unicode数据中的为模式一致的翻译成字符,保证了同一个为模式在所有的计算机上总是转换成同一个字符,数据可以随意的从一个数据库或计算机传送到另一个数据库或计算机而不用担心系统是否会错误的翻译位模式。
Ncha'r和Nvarchar都属于统一类型的数据,
的nchar与炭类似,包含Ñ个字符的固定长度的Unicode字符数据中,n值必须介于1和4000之间,村赤大小为Ñ字节的两倍。
nvarchar(n)与varchar(n)包含n个字符的可变长度Unicode字符数据.n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零
【总结】