sql中CHAR后面的数字可以随便写吗?

如题所述

一楼的说法不太准确.
1.char和varchar各有优缺点.char是定长,实际长度超过指定长度是,右边被截去,不足时右边补空格;varchar是变长,数字表示允许的最大长度,在储存时用另外一个字节来保存实际的长度.
2.一般来说,char确实会导致一定的储存空间浪费,但在进行数据操作的时候速度更快;varchar虽然能节省储存空间,但很多操作多每次要去查询字段的实际长度,这会导致数据操作速度变慢.
4.char和varchar各有用途.在已知字段长度的情况下(比如学号字段,一般每个学生的学号长度是固定一样的),可以用char类型,既不会浪费空间,有不会拖慢速度.如果字段的长度是不确定,这是是用char还是varchar就需要考虑一下了.比如,中国人的名字一般是两个/三个或者四个字,最多五个字,如果你的数据库对自个字段的操作特别多的话,你也可以考虑将个字段设为char(5).因为现在寸寸设备的价格已经很便宜了,而用户对系统的相应速度要求比较高,用空间换时间.
5.说到底,这还是一个空间与速度之间取哪个的问题,这要结合实际情况具体分析.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-07
不能,char()它是固定变量:也就是说你在char后面定的值是死的,你定的是多少就是多少字节,而且特占空间;
你可以用varchar()它是可变变量:也就是说你在varchar后面定的值是最大值的,当你在里面输入信息所占的多少字节就是多少字节,它可以随着你占用的字节的大小自己更改(前提是在你所占用的字节,没有超过你所设定的字节,超过了是输入不进去)。
相似回答