W wlyft Unregistered / Unconfirmed GUEST, unregistred user! 2008-06-13 #1 nchar<br>varchar<br>nvarchar<br>在长度一样的情况下,哪个占用空间会比较大一点<br>SQLserver2000
H hanpengshan_00 Unregistered / Unconfirmed GUEST, unregistred user! 2008-06-13 #2 nchar 和 nvarchar<br>nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。<br><br>nchar<br><br>包含 n 个字符的固定长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍。<br><br><br>nvarchar<br><br>包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。<br>注释<br>如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。<br><br>如果希望列中所有数据项的大小接近一致,则使用 nchar。<br><br>如果希望列中数据项的大小差异很大,则使用 nvarchar。<br><br><br>varchar[]<br>长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
nchar 和 nvarchar<br>nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。<br><br>nchar<br><br>包含 n 个字符的固定长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍。<br><br><br>nvarchar<br><br>包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。<br>注释<br>如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。<br><br>如果希望列中所有数据项的大小接近一致,则使用 nchar。<br><br>如果希望列中数据项的大小差异很大,则使用 nvarchar。<br><br><br>varchar[]<br>长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
轻 轻舞肥羊 Unregistered / Unconfirmed GUEST, unregistred user! 2008-06-13 #3 如果长度一定,并且内容里有非宽字符的字母则<br>最短varchar<br>其次nchar<br>最长nvarchar<br><br>如果长度一定,并且内容里全是宽字符则<br>最短nchar<br>varchar nvarchar一样
如果长度一定,并且内容里有非宽字符的字母则<br>最短varchar<br>其次nchar<br>最长nvarchar<br><br>如果长度一定,并且内容里全是宽字符则<br>最短nchar<br>varchar nvarchar一样
W wlyft Unregistered / Unconfirmed GUEST, unregistred user! 2008-06-16 #4 我的意思每种类型都设定为30时<br>输入的是字符比如说是"1*Kk/大",这时哪一种类型占用空间最小?<br>如果输入的是"1*Kk/",这时哪一种类型占用空间最小?
轻 轻舞肥羊 Unregistered / Unconfirmed GUEST, unregistred user! 2008-06-16 #5 nchar定长,你输入多少它都占30*2字节的空间<br>varchar 存长度标识+实际字符占用空间,单字节字符占1字节<br>nvarchar存长度标识+实际字符占用空间,单字节字符占2字节<br>自己算
nchar定长,你输入多少它都占30*2字节的空间<br>varchar 存长度标识+实际字符占用空间,单字节字符占1字节<br>nvarchar存长度标识+实际字符占用空间,单字节字符占2字节<br>自己算