讨论一下 Null 在sql中是值类型还是引用类型?
create table  stuinfo
(
 stuid int,
 name varchar(20)
)
insert into stuinfo(stuid) values(null)
1行受影响
如上,stuid是int类型(值类型),但是可以往里面插入null值,是否意味着Null 在sql中是值类型??如果是引用类型的话就不能成功插入进去了。。
在一般的编程语言里null都是引用类型的,迷惑中

解决方案 »

  1.   

    null不是什么类型,是什么都没有。
      

  2.   

    sql里没有值类型和引用类型之分。
      

  3.   

    三值逻辑(真、假、未知)之一,对应未知(Unknown)的情况
      

  4.   

    NULL 是神马也没有 '' 是长度为0 的字符串 ,C#中还会对这个有值类型和引用类型的说法
      

  5.   

    我明白LZ 的意思了 int 并不包括 NULL  简单点说就是你在 
    创建表的时候没有给int 类型的ID 指定 NOT NULL   如果你指定了你再插入  NULL 肯定会报错,明白了吗?
      

  6.   

    像你所说 int 并不包括 NULL,为什么可以向里面插入null? 
      

  7.   

    NULL值比较取决于你的设置。。
      

  8.   

    经典!
    所有的数据类型都可以为null的吧,就是什么都没有,而‘ ’代表空值!
      

  9.   

    Null 就是没有,SQL理解为unknow ,unknow 在不同的环境中的理解是不同的 在check约束中unknow 被当作true 处理
      如 一个约束限制Col1的值>10 ,当insert null到Col1时是允许的,因为SQL认为 null>10 为true  
     在筛选器中(on, where having) unknow  被当作False处理  
     如 null>1  , null==null, x+null>y 都被认为是false