1、int(4) UNSIGNED:你都写明了是4个数字(不带符号)。2、varchar(255):Varchar类型,单位是字节的,一个中文字符两个字节,所以varchar(255),储存127个汉字和1个英语字符(除于2有余数)。3、varchar(600):不能设置为600,varchar范围是1至255个字节之间。4、smallint(10):好像有些错误,smallint的参数最多只有5,因为smallint的范围是-32768至32768,只有5位数5、tinyint(10):同4一样,像是错了,tinyint只有-128至128,只有三位6、float:允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。(引用)

解决方案 »

  1.   


    ================================3.varchar(600)是错误的,就是不可以取的,但是我在phpMyAdmin中可以这样设置的,这个?不明白?
    ($sql = 'ALTER TABLE `img_info` CHANGE `file_type` `file_type` VARCHAR(600) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL'; 在phpmyadmin中执行是成功的)
    =================================
      

  2.   

    好像到时候写入数据时,会把255字节后的自动删除掉的,我还没有证实过,反正,VARCHAR用时,不要超过255为好。
      

  3.   

    【1】int(4)表示的就是int最多取值是4 位对吗,那么它的取值范围是0~9999,对吗?
    【2】varchar(255)最多取值255位,那么varchar(255)最多可以取值127个汉字加上一个英文字母,对吗?=====================【3】如果用varchar来储存数字,而且是整数,那么可以存储255位,就是"0~255位数的数字",那么比那个int的取值范围还长??(理解错误了吗?)【4】一个数字占用了一位,就是位的关系是"1汉字=2数字",对吗?
    【5】数字和英文字母的占的位是一样的,那么"1英文字母=1数字",对吗?
    ======================
    【6】byte和bit的关系是1byte=8bits,对吗?那么int(4)表示的是4bits还是4byte呢?(希望知道的人告诉我一下)
    【7】TINYINT的取值范围是(-128 到 127),括号中的-128表示的是128位?======================很迷惑,希望大家帮忙说明白一下。
      

  4.   

    第一,第二个问题可想你那样理解。第三,既然是存储整数,那你为什么要有字符来存储呢?用字符存储可能有想不到的后果,比如如果你的一个ID自动增长做为主健,你就不能把ID定义为字符类型。如果你想要整型加大,你可以用bigint类型啊。
    4,5问题是所占的字节数相当。
    6,bit是字节的最小单位,bit 是位,byte是字节,1byte=8bit,int是4字节,short int是2字节,long int也是4字节,int数据最大长度为11,所以int(4)表示查询4个长度的数据。
    7。TINYINT的取值范围是(-128 到 127)表示取值范围,不是128位
      

  5.   


    就是说int(4)表示的是最多可以取值是4位数的数字,
    而tinyint的取值范围是-127~1287的这个"-127~128"表示的是这个数字的数值范围,而不是这个数有多少位,对吗?
      

  6.   

    范围就是这样,int(4),就是四位数字,tinyint的范围是-127至128,这当然不是位数,是数字范围,tinyint是最小的数据库单位,只需1字节储存。