前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住给大家分享一下。点击跳转到网站:https://www.captainai.net/dongkelun
前言
如题,本文总结Oracle和MySQL如何判断是否为空或NULL
1、Oracle
1.1 建表
1 | CREATE TABLE TEST_NULL ( |
1.2 INSERT
1 | INSERT INTO TEST_NULL (ID, NAME) VALUES('001', '张三'); |
1.3 查询
1.3.1 所有数据
1 | SELECT * FROM TEST_NULL |
可以看到INSERT时,’’==NULL
1.3.2 为空(NULL)的数据
只能用IS NULL1
SELECT * FROM TEST_NULL WHERE NAME IS NULL
用=’’ 或者=’ ‘都不行
1.3.3 不为空(NULL)的数据
IS NOT NULL 和 !=’ ‘都可以
以下等价1
2SELECT * FROM TEST_NULL WHERE NAME IS NOT NULL;
SELECT * FROM TEST_NULL WHERE NAME !=' ';
但是用!=’’不行,和为空时是不一样的
2、MySQL
2.1 建表
1 | CREATE TABLE TEST_NULL ( |
注意:和Oracle不完全一样
2.2 INSERT
1 | INSERT INTO TEST_NULL (ID, NAME) VALUES('001', '张三'); |
2.3 查询
2.3.1 所有数据
1 | SELECT * FROM TEST_NULL |
可以看到MySQL ‘’和 NULL是不一样的
2.3.2 为NULL
IS NULL1
SELECT * FROM TEST_NULL WHERE NAME IS NULL
2.3.3 为 ‘’
=’’1
SELECT * FROM TEST_NULL WHERE NAME =''
2.3.4 既不为空也不为NULL
1 | SELECT * FROM TEST_NULL WHERE NAME !='' |
这点和我想的不一样,也就是过滤不为空的时候把NULL也过滤掉了,没发单独过滤不为空的~~
2.3.5 不为NULL
1 | SELECT * FROM TEST_NULL WHERE NAME IS NOT NULL |
3、总结
大概总结一下(有点懒):
Oracle 最好用 IS NULL 和 IS NOT NULL
MySQL 最好用 =’’ OR IS NULL 和 !=’’
这主要是针对机器学习处理特征时过滤缺失值和异常数据,当然肯定还有其他需求,具体看上面两节讲的
每日英语
- 1、lightweight 轻量级
- 2、paradigm 范式 multi-paradigm 多范式
- 3、oriented 面向 object-oriented 或 object oriented 面向对象的
- 4、imperative 命令式,必要的
- 5、prototype 原型 prototype-based 基于原型的
JavaScript is a prototype-based, multi-paradigm, dynamic language, supporting object-oriented, imperative, and declarative (e.g. functional programming) styles.
JavaScript 是一种基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格