问一下关于SQL server数据类型的问题?!

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:45:48
1.CHAR和VARCHAR都是用来存储非unicode字符的变量类型。教材中说VARCHAR用于定义长度可变,但是我读了下面发现,仍然要指定n,这不是和CHAR一样吗?
2.还有VARCHAR后的参数为【n |max】,n必须要指定,那么max是选项还是说明,说明了VARCHAR有最大大小?
懂的人打几行字说下吗,已经看了半天书了,还复制这么多字过来~~

char是固定长度
varchar是可变长度

varchar是还是需要指定长度
其所谓的可变长度是指
在你定义的长度的范围内
如果你输入存储的字符没有占有那么多空间
他就会按你所占用的实际大小来重新分配相应空间
若你输入存储的字符超过了所定义的范围
他则会只存储你所定义的空间的最大范围的内容
多出来的那些内容会被忽略掉

至于
VARCHAR后的参数【n |max】
n是必须要指定的
因为只有你指定了大小
他才能给你分配空间
max则是VARCHAR这个类型所能存储的最大容量
因此是一个可选项

它的意思是说你在使用varchar变量的时候要指定它的长度,面varchar是有最大长度的就是8000.这就是说你在定义varchar变量时可以按自己的需要指定长度(1~8000),超过了,sql会帮你自动切除。

varchar它的长度可变指的是你在从数据库里读取数据的时候,它会按原来数据的长度读出。
以varchar(10)和char(10)
作对比吧
在varchar的字段里存入"ok"
读出来的结果是"ok"
而在char的字段里存入"ok"
读出来的结果是"ok           ";  
可以看到char的长度是不变,而varchar的长度则是按实际来变化
百度还会自动去空格----晕

CHAR和VARCHAR最大的区别在于:
一个自动去空格一个不会。比如:
char(6),varchar(6)
对于hello这个字符串
varchar读出来的是“hello"而char读出来的是"hello "(注意后面有一个空格.char就是这样不管你字符串是多长,他仍然占原定长度。。
而varchar就自