oracle null与空字符串区别

oracle null与空字符串区别

创建表

-- Create table
create table TEST_NULL
(
  id   number(20) not null,
  name nvarchar2(20),
  des  nvarchar2(2000)
)
;
-- Create/Recreate primary, unique and foreign key constraints 
alter table TEST_NULL
  add constraint id_primary primary key (ID);

插入数据

insert into scott.Test_Null(id, name, des) values(1, '张三', '');
insert into scott.Test_Null(id, name, des) values(2, NULL, NULL);
insert into scott.Test_Null(id, name, des) values(3, NULL, 'HEHE');
insert into scott.Test_Null(id, name, des) values(4, '', 'NULL STR');
commit;

查看数据

select t.*, rowid from scott.Test_Null t;

oracle null与空字符串区别_第1张图片

验证

  1. 查询name值为null

    select t.*, rowid from scott.Test_Null t where t.name is null;
    oracle null与空字符串区别_第2张图片

  2. 查询name值为”

    select t.*, rowid from scott.Test_Null t where t.name = ”;
    oracle null与空字符串区别_第3张图片

  3. nvl(t.name, ”) -如果name为null,将值转为”

    select t.*, rowid from scott.Test_Null t where nvl(t.name, ”) is null;
    oracle null与空字符串区别_第4张图片

结论:数据库中只有null,没有”字符

你可能感兴趣的:(数据库)