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



