關於 oracle NULL
SQL> SELECT * FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
NULL空值概念
NULL即空值,表中的某些欄位值可能會出現空值,這是因為這個資料不知道是什麼值或根本就不存在。
Oracle中NULL不等同於字串中的空格,也不是數字型別的0,因此NULL不支援加,減,乘,除,大小,等值的比較,否則只能為空,NULL的使用不能用“=”NULL 應該使用 IS NULL或者 IS NOT NUL
以下是簡單的測試示例:
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10
14 rows selected.
1.NULL的使用
SQL> select * from emp where comm=NULL;
no rows selected
SQL> select * from emp where comm is NULL;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10
10 rows selected.
2.Oracle NULL的比較運算測試
SQL> select * from emp where 1 > NULL;
no rows selected
SQL> select * from emp where 1 + NULL < 0;
no rows selected
SQL> select * from emp where 1 * NULL < 0;
no rows selected
基於NULL的特殊性,SQL語句在使用函式時,應該對NULL語句進行測試,檢視返回結果再使用
相關文章
- 【NULL】Oracle null值介紹NullOracle
- Java--- 關於null的處理若干方法JavaNull
- 4.1 關於 Oracle RestartOracleREST
- Java 中關於 null 物件的容錯處理JavaNull物件
- 關於oracle中的undoOracle
- 4.2.1 關於配置Oracle RestartOracleREST
- 1 關於 Oracle Data GuardOracle
- 關於oracle的Spool命令Oracle
- 關於Oracle的BLOB和CLOBOracle
- 關於Oracle Database Vault介紹OracleDatabase
- oracle關於ORA-12988錯誤Oracle
- 關於oracle的空間查詢Oracle
- 關於 /dev/null 差點直播吃鞋的一個小問題devNull
- 【ASK_ORACLE】關於Oracle索引分裂你需要知道的Oracle索引
- NULL在oracle和mysql索引上的區別NullOracleMySql索引
- 關於轉儲Oracle索引資訊的相關命令Oracle索引
- 4.1.4 關於啟動和停止Oracle RestartOracleREST
- 在Hibernate中關於Oracle sequence的使用KHOracle
- 1.4.1. 關於Oracle 資料庫版本號Oracle資料庫
- 2.2.3 關於配置Oracle-Home只讀模式Oracle模式
- 關於建表欄位是否該使用not null這個問題你怎麼看?Null
- Oracle vs PostgreSQL,研發注意事項(12) - NULL與索引OracleSQLNull索引
- 關於Oracle dba_free_space 檢視的研究Oracle
- 關於Oracle 10g ASM磁碟大小的限制Oracle 10gASM
- 關於亞馬遜AWS 棄用 Oracle的思考亞馬遜Oracle
- [20190311]關於oracle物理與邏輯壞塊.txtOracle
- 關於Oracle資料庫的時間查詢Oracle資料庫
- 關於Oracle災備書籍的意見徵集Oracle
- Hashtable/HashMap與key/value為null的關係HashMapNull
- 關於ORACLE大型事務回滾的幾個點Oracle
- [20191202]關於oracle例項是否使用hugepages問題.txtOracle
- Oracle:優化方法總結(關於連表查詢)Oracle優化
- [20201207]關於ORACLE IMU的一些疑問.txtOracle
- 關於oracle資料庫訊號量的問題Oracle資料庫
- 關於Oracle 12c的叢集監控(CHM)Oracle
- 【C#】-對於Null值的處理方法C#Null
- [20191001]關於oracle number型別的一些疑惑.txtOracle型別
- 備忘錄:關於.net程式連線Oracle資料庫Oracle資料庫
- Oracle資料庫關於SQL的執行計劃(轉)Oracle資料庫SQL