SQL中的NULL值

http://hi.baidu.com/%B3%C9%B9%A6%D4%B4%D3%DA%CB%BC%BF%BC/blog/item/c22e2af5b7595269ddc474ae.html
[url=http://www.riaos.com]RIA知识库[/url]
[url=http://www.riaos.com]flex[/url]
[url=http://www.riaos.com]RIA[/url]
1)、当在SELECT子句使用连接符“+”连接表达式时,如果有一列为NULL,则得到的结果也为NULL,当与NULL值作运算时,情况同上(逻辑运算符OR运算时除外,当TRUE OR NULL时,结果为TRUE,但FALSE OR NULL时结果为UNKNOW)

2)、在ORDER BY 子句中,NULL值被认为是最小可能(即,如果是升序排序 ,则NULL会排在第一位)

3)、NULL的判断不能简单的用=或!= 而只能使用IS (NOT) NULL来判断,可以使用ISNULL函数来对NULL值进行替换(即第一个参数为NULL式,将其替换为第二个参数的值)

4)、在连接语句(外连接中),左表或右表失配的元素会被设为NULL值(可以变通地通过这个特征得到左表有而右表没有记录,反之亦然),另外,在表的内部连接中,如果要连接的列都含有NULL值,则它们被认为是相互不匹配的,因此,如果其中一个连接表的列中出现NULL,只能通过外部连接返回这些值(除非WHERE子句不包括空值。

5)、在GROUP BY 子句中,NULL值会被分为一组,而不是被忽略,另外,在CUBE ROOLUP汇总语句中,会由运算符操作生成NULL值 ,怎么样区别NULL是记录本身的还是系统生成的呢? 答案就是GROUPING(列名)==1

6)、NULLIF函数,如果指定的两个表达式等价,则返回空值

7)、DATALENGTH函数可以返回用于表示任何表达式的字节数,但要注意 NULL的DATALENGTH仍是NULL

8)、有一个函数会把NULL统计在内,那就是COUNT(*),除此之外,所有的聚合函数均会“忽略”NULL值(注意,不是把结果搞成NULL),(还要注意,MAX MIN函数虽然也会忽略NULL,但当所有行都是NULL值时,它便只能返回NULL了)

9)、表的约束中,主键具有唯一性约束并且不允许NULL值 ,但单独的UNIQUE约束可以存在一个NULL值,当一个表设置了外键约束时,它可接收的值一种是在参照列中存在的值,还可以是NULL值,在主键约束中不必再指定NOT NULL,但如果显式指定为NOT NULL系统也是允许的

10)、表的插入操作,当要插入的数据为空时,要显式指定为NULL而不能什么都不写

11)、使用IN 子查询的方式实现“集合交”的操作时,IN 关键字会排除NULL值,而结果集中会有重复值出现,这点和intersect 是不同的,不管是null in (null) 还是null not in (null)其结果都是FALSE

12)、exists子查询中使用NULL仍然会返回结果集,如:
select * from bookinfo where exists(select null) order by bookid--仍然会返回结果

13)、多列外键约束时,如果没有NULL值则系统会强制每个列全部匹配 ,但如果其中一列存在NULL值 则系统会放弃检查,这有可能引起数据完整性的问题,因此 ,此类问题最好在约束的每个列上增加not null约束。例如,如果a(sid,sname) references b(id,name) ,当向a 表插入类似values(' 随便一个不匹配的数字’,NULL)时,并不会引起数据插入失败,从而失去约束的效果

14)、当一个表在创建时没有设置主键,利用修改表语句添加主键时,则要实施主键约束的列必须已经具有not null约束

15)、当使用CHECK约束时,如果后面的表达式返回NULL,则校验会通过
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值