SQL Server中,varchar和nvarchar如何选择
2013-11-22 16:28
246 查看
varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。
nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。
二、该如何选择两种字符呢?
varchar和nvarchar都能存储汉字。区别在于,一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.
同时,varchar的检索快于nvarchar。
至于,具体该选择哪种,看你自己的想法和需求了
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。
nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。
二、该如何选择两种字符呢?
varchar和nvarchar都能存储汉字。区别在于,一个汉字占varchar(2),只占nvarchar(1),而字母只占varchar(1),那么在数据库字段求长度的时候,用varchar你就不一定知道它确切的知道它到底有几个字,如果用nvarchar,那么汉字也是nvarchar(1),字母也是nvarchar(1),那么已经很明显了.
同时,varchar的检索快于nvarchar。
至于,具体该选择哪种,看你自己的想法和需求了
相关文章推荐
- SQL Server中,varchar和nvarchar如何选择?<转>
- SQL Server中,varchar和nvarchar如何选择?
- SQL Server中,varchar和nvarchar如何选择
- SQL Server中,varchar和nvarchar如何选择?
- SQL Server中,varchar和nvarchar如何选择?
- SQL Server中,varchar和nvarchar如何选择?
- SQL Server中,varchar和nvarchar如何选择?
- SQL Server中,varchar和nvarchar如何选择? [转载]
- SQL Server中,varchar和nvarchar如何选择
- SQL Server中,varchar和nvarchar如何选择?
- char、varchar、nchar、nvarchar区别及如何选择
- SQL Server中nvarchar和varchar的区别
- SQL Server中TEXT/NTEXT字段内容替换方法总结(SQL 2005及以上建议使用VARCHAR(MAX)/NVARCHAR(MAX)代替)
- Sql Server中的nvarchar(n)、varchar(n) 和Mysql中的char(n)、varchar(n)
- SQL Server中char、nchar、varchar、nvarchar的区别
- sql server中的varchar和Nvarchar有什么区别?
- SQL Server 索引使用分析(4)- 如何选择聚集索引
- SQL Server中字段数据类型char nchar varchar nvarchar的区别
- sql server数据类型char和nchar,varchar和nvarchar,text和ntext的区别
- char varchar nchar nvarchar 四者的区别是什么(为何SQL Server自动给字符串末尾加空格)