讨论一下 Null 在sql中是值类型还是引用类型?
create table stuinfo
(
stuid int,
name varchar(20)
)
insert into stuinfo(stuid) values(null)
1行受影响
如上,stuid是int类型(值类型),但是可以往里面插入null值,是否意味着Null 在sql中是值类型??如果是引用类型的话就不能成功插入进去了。。
在一般的编程语言里null都是引用类型的,迷惑中
create table stuinfo
(
stuid int,
name varchar(20)
)
insert into stuinfo(stuid) values(null)
1行受影响
如上,stuid是int类型(值类型),但是可以往里面插入null值,是否意味着Null 在sql中是值类型??如果是引用类型的话就不能成功插入进去了。。
在一般的编程语言里null都是引用类型的,迷惑中
创建表的时候没有给int 类型的ID 指定 NOT NULL 如果你指定了你再插入 NULL 肯定会报错,明白了吗?
所有的数据类型都可以为null的吧,就是什么都没有,而‘ ’代表空值!
如 一个约束限制Col1的值>10 ,当insert null到Col1时是允许的,因为SQL认为 null>10 为true
在筛选器中(on, where having) unknow 被当作False处理
如 null>1 , null==null, x+null>y 都被认为是false