Mysql Oracle 对null 和 空值的处理
一、Mysql
1、新建一个测试表
CREATE TABLE TestNull(col VARCHAR(100)); //插入四条数据 INSERT INTO TestNull VALUES(NULL); INSERT INTO TestNull VALUES('tom'); INSERT INTO TestNull VALUES(''); INSERT INTO TestNull VALUES(' ');
//查询结果
验证方式一、select * from testnull
验证方式二、
select * from testnull where col is null
//插入数据成功
验证方式三:
将字段设置非空约束
INSERT INTO TestNull VALUES('');
mysql 查询 对null 的处理
select ifnull(字段名,0) from 表名;
二、Oracle
1、新建一张测试表
CREATE TABLE TestNull(col varchar2(100)); //插入四条数据 INSERT INTO TestNull VALUES(NULL); INSERT INTO TestNull VALUES('tom'); INSERT INTO TestNull VALUES(''); INSERT INTO TestNull VALUES(' ');
//查询结果
验证方式一、select * from Testnull where col is null
验证方式二、select nvl(col, 'emptyOrNull') from TestNull
验证方式三:
将字段设置非空约束,插入一条空数据
INSERT INTO TestNull VALUES('');
由报错信息可知:不可插入数据
Oracle 查询对 null 的处理
select nvl(字段名,0) from 表名;
由此可知:
mysql 只有插入null 数据才是null
oracle 插入'',数据库会处理成null