ORACLE数据库NULL介绍如下:
1、在where条件中支持 IS NULL、IS NOT NULL,不支持 = NULL、!= NULL、 <> NULL,比如当使用<> NULL时,sql语句会查不到任何数据;
SQL> SELECT * FROM DEPT WHERE DEPT_ID IS NOT NULL;
2、在CONSTRAINT约束条件中,如表里字段是primary key,则该字段不允许为NULL,如是INDEX,则字段允许为NULL
3、GROUP FUNCTION组函数,ORACLE中在组函数里面是忽略掉NULL值;
SQL>SELECT COUNT(DEPT_NAME) NUM FROM DEPT;
SQL>SELECT COUNT(*) NUM FROM DEPT;
当DEPT中DEPT_NAME记录存在空值时,此时上面两条SQL语句NUM值会不相同。
4、ORDER BY排序,NULL默认值是最大值,如果是ASC升序则排在最后,如是DESC则排在最前面,ORACLE还支持另外2种用法NULLS FIRST和NULLS LAST,
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
SQL>SELECT DEPT_ID,DEPT_NAME FROM DEPT ORDER BY DEPT_ID NULLS FIRST;
SQL>SELECT DEPT_ID,DEPT_NAME FROM DEPT ORDER BY 1 NULLS LAST;
1、在where条件中支持 IS NULL、IS NOT NULL,不支持 = NULL、!= NULL、 <> NULL,比如当使用<> NULL时,sql语句会查不到任何数据;
SQL> SELECT * FROM DEPT WHERE DEPT_ID IS NOT NULL;
2、在CONSTRAINT约束条件中,如表里字段是primary key,则该字段不允许为NULL,如是INDEX,则字段允许为NULL
3、GROUP FUNCTION组函数,ORACLE中在组函数里面是忽略掉NULL值;
SQL>SELECT COUNT(DEPT_NAME) NUM FROM DEPT;
SQL>SELECT COUNT(*) NUM FROM DEPT;
当DEPT中DEPT_NAME记录存在空值时,此时上面两条SQL语句NUM值会不相同。
4、ORDER BY排序,NULL默认值是最大值,如果是ASC升序则排在最后,如是DESC则排在最前面,ORACLE还支持另外2种用法NULLS FIRST和NULLS LAST,
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
SQL>SELECT DEPT_ID,DEPT_NAME FROM DEPT ORDER BY DEPT_ID NULLS FIRST;
SQL>SELECT DEPT_ID,DEPT_NAME FROM DEPT ORDER BY 1 NULLS LAST;