sql 备注的一列 长度定义 nvarchar(max)合适吗? 数据库是怎么分配空间的?

如题所述

没问题,varchar和nvarchar是不定长的,数据库会根据存放的实际字节分配长度的,不会直接分配4000字节。除了存放英文字母的时候会占用两个字节,有点浪费。
char和nchar是定长的,不够的部分会自动补齐,分配指定字节长度的空间
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-20
nvarchar(N) 里面的N 取值范围是1-4000 也就是最大值是 4000 你这么写不行追问

但是也有nvarchar(max)的定义呀,没出错。我指的是分配存储空间的时候,是不是就很大,影响系统吗

本回答被网友采纳
第2个回答  2015-03-26
nvarchar

用来定义可变长度的二进制数据,最大长度为4000个字符。nvarchar数据类型的定义形式为:

nvarchar[(n)]

其中,n表示所有字符占有的存储空间,以字节为单位。n必须是一个介于1~4000之间的数据。若输入的数据过长,SQL将会截掉其超出部分。
nvarchar与nchar的区别和varchar与char的区别类似。

例如,如果定义表列为nvarchar(20),那么存储在该列的数据最多可以长达20个字节。但是,在每列数据没有达到20个字节时,并不会在多余的字节上填充空格。

说明:当存储在列中数据的值的大小经常变化时,使用nvarchar数据类型可以有效地节省空间。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网