如题,
我定义了一个char(5)类型,结果最多只能输入一个字符,莫非一个字符要占5个长度,那这里的长度=5倒底是什么意思,好像不是几个字符的意思,还有int(4)这里的长度=4又是什么意思。。还有varchar的长度定义的意思,是不是说数据库先给该列分配一个最小的空间,在数据不超过8KB的情况下来扩充空间我不太懂,请各位指教谢谢!!

解决方案 »

  1.   

    char(n)
    长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。
    varchar(n)
    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。一个汉字是2个字节,E文字母和数字是1个字节
      

  2.   

    int(4)是指在系统中int类型是用4个字节存放的,这个不需要改变
    类似的还有datetime等
      

  3.   

    TO  dxef(丁丁) ,
    那为什么 我定义一个 char(5),它只允许我最多输入一个英文字母,
    按你说的话应该是可以最多输入5个英文字母,或者2.5个汉字啊??
    WHY??还有按你说的,如果varchar(n)这里的n,如果不是规定数据存储的大小,那它放在这里有什么用?能帮我解答一下吗,谢谢!!
      

  4.   

    TO  dxef(丁丁) ,不好意思,刚才是我的一点小失误,现在明白char(5)真的是最多只能输入五个字节了,刚开始我输了一个英文字母,再切换到另一行,最后切回来,它有五个字节的占位,后来我从第五个字节开始的光标位置开始输入,当然会提示超出围了,晕现在还有最后一个问题,varchar(n)这里的n是不是字节变化范围的上限啊??