我们在数据库设计时,char、varchar、text和nchar、nvarchar、ntext是使用频率相对来说比较高的数据类型,但有时候不知道选择哪种为好,原因是不太清楚他们之间的区别所在。
要使数据库设计得更加合理,我们需要对各种数据类型的概念和用法都有一个比较清晰的了解。
这里说说char、varchar、text和nchar、nvarchar、ntext的区别和选用。
1) char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
2) nchar、nvarchar、ntext,表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar 。
☉sql安装:某程序已创建挂起的文件,需重启计算机【解决方法】 (2009-8-29 0:50:8)
☉最新Microsoft SQL Server SA权限入侵方法 (2009-6-30 23:6:11)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。