用varchar2(1)比较通用 ;  不过如果在应用程序中经常需要sum , count , avg 等的话 , 那么用number类型比较合适 , 以免在程序开发过程中需要转化 .

解决方案 »

  1.   

    在应用程序中倒不需要进行sum等操作,只是想问问Number(1)、Char(1)、Varchar2(1)哪种对数据库的影响比较小,也就是效率比较高?
      

  2.   

    如果你的字段不需要SUM等数学计算的话,那我建议你使用VARCHAR2(1)
    这是一个比较通用的方法,而且 ORACLE保证在以后的版本中不对VARCHAR2类型进行修改,而VARCHAR类型是为了保持与SQL 92标准的一致而可能做出修改的。
    就效率而言,我觉的这个设置相差无几吧,也就是说可能是无从比较
      

  3.   

    这样的选择其实是无所谓的,个人支持number(1)
      

  4.   

    "只有四五种情况"时,加上记录集没有达到定的数量级,
    为了程序可读性建议不使用代码模式,如:
    推荐:'年份','月份','日' 或 'year','month','day' .varchar2
    次之:'Y','M','D' .  char(1)
    不推荐,1,2,3 .  number(1)另外:
    1.在长度比较小的情况下,VARCHAR2比CHAR占空间大。
    2.使用NUMBER的好处是使用时不用加'号
    3.索引对查询速度的影响比其他因素大,加索引的字段长度特别长时,对INSERT等语句效率有影响。
      

  5.   

    varchar2(1)比较好,但速度要慢一些,
    用CHAR(1)是个折中的办法
      

  6.   

    对于varchar(1)、char(1)、number(1)三种字段在查询时效率上有什么不同?比如三种类型的字段值都为0,1,2时,若要使用decode()方法转换时效率是不是一样?
      

  7.   

    只要不用到计算而且长度一定的话我比较倾向char
    关于效率的问题你可以自己做做实验看看
      

  8.   

    单纯从数据库的效率来讲,是NUMBER,但是还要考虑扩展性