AoboSir 博客

与15年前的我比,我现在是大人;与15年后的我比,我现在还是个婴儿

SQL 数据库 学习 023 查询-06 Null 的用法 --- 没有值 空值


  • 我的电脑系统:Windows 10 64位
  • SQL Server 软件版本: SQL Server 2014 Express

本篇博客里面使用了 scott 库,如何你现在还没有添加这个库到你的服务器里面,请在查看本篇博客前,访问这篇博文来在你的服务器里面附加scott库。


null — 没有值、空值

1
2
3
4
--null不能参与<> != = 运算
select * from emp where comm <> null; --输出为空 error
select * from emo where comm != null; --输出为空 error
select * from emp where comm = null; --输出为空 error
1
2
3
4
5
--null 可以参与is 、 not is 
select * from emp where comm is null;
  --输出奖金为空的员工的信息
select * from emp where comm is not null;
  --输出奖金不为空的员工的信息
1
2
3
4
--任何类型的数据都允许为null
create table t1 (name nvachar(20), cnt int, riqi datetime)
insert into t1 values (null, null, null)
select * from t1;
1
2
3
--输出每一个员工的姓名、年薪(包含了奖金)、comm假设是一年的奖金
select ename, sal*12+comm "年薪" from emp;
  --这段指令证明了:null不能参与任何数学运算,结果永远是null
1
2
3
--正确的写法
select ename, sal*12+isnull(comm, 0) from emp;
  --isnull(comm, 0) 如果comm是null,就返回为0,否则返回comm的值。

总结:

  • 0null 是不一样的,null 表示空值,没有值,0表示一个确定的值
  • null 不能参与如下运算:<>!==
  • null 可以参与如下运算:isnot is
  • 任何类型的数据都允许为null
  • null不能参与任何数学运算,结果永远是null

Comments