在数据库里面,如果字段A不插入数据,为null,与插入''的话在存储空间上有什么区别,希望答案能详细一些,TKS...

解决方案 »

  1.   

    看过一些别人的回答:"一个在堆里分配了存储空间,另一个没有分配存储空间"  
    不知是否正确?null是否不需要存储空间的?
      

  2.   

    http://topic.csdn.net/u/20090318/10/0a136514-a2f6-49f8-9525-69845e7608e9.html?1172983039
      

  3.   

    char/nchar等定义的数据类型,一定会占用空间的。
    但是vchar/varchar等不等长数据,好象不会占用空间的。好象论坛上有高手做过测试。
      

  4.   

    我只知道从规范上来说 一般在字段不要为NULL
    最好能建表时候填默认值为最好
      

  5.   

    --轉老大原話 
    /* 
    如果你是char/nchar这类定长的类型,  那不用说,  肯定占用.  
    如果你是其他数据类型,  则不占用空间.  
    但要注意,  即使记录中的每个列都是NULL,  记录本身也要一个地址或者指针之类,  也会有空间开销. 
    */ 
      

  6.   

    结论是定长null占用空间,不定长null不占用空间。 定长一旦表结构确定,每页存储记录数固定,不定长则不固定。 定长在update中的性能要高于不定长(个人觉得是远远高于,但是没有测试数据不敢说话) 不定长因为字段从较长望 较短的update情况下会出现差值引起的空间的浪费;而另外因为null不占空间,
    当null变为非null以及从短望长的update中都会出现整条数据位置变化,原来的位置空间被抛弃,而引起较大的空间浪费。
      

  7.   

    定长null占用空间,不定长null不占用空间
      

  8.   

    '' = ''   ; null != null ;  null is null;
    null 表示空值(空字符、数字、时间等); ''表示空串
      

  9.   

    NULL不等于任何值
    if null=''
    select 1
    else if isnull(null,'')=''
    select 2
    else 
    select 3
    --结果为2---------------------
    select len(convert(char(10),''))
    select len(convert(char(10),null))
                
    ----------- 
    0(所影响的行数为 1 行)            
    ----------- 
    NULL(所影响的行数为 1 行)
      

  10.   

    ''是一个具体的值
    NULL表示没有值
      

  11.   


    轉剪剪的.
    -------- 
    从char和varchar的测试中可以得到以下结论,感兴趣的朋友可以测试其他类型 最后的结论是定长占用空间,不定长不占用空间。 定长一旦表结构确定,每页存储记录数固定,不定长则不固定。 定长在update中的性能要高于不定长(个人觉得是远远高于,但是没有测试数据不敢说话) 不定长因为字段从较长望 较短的update情况下会出现差值引起的空间的浪费;而另外因为null不占空间,当null变为非null以及从短望长的update中都会出现整条数据位置变化,原来的位置空间被抛弃,而引起较大的空间浪费。
      

  12.   

    null是空的,未在磁盘中分配空间,
    ''是空字符串,有分配的