IT貓撲網:您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據(jù)庫Oracle → Oracle數(shù)據(jù)庫中null的具體使用方案

Oracle數(shù)據(jù)庫中null的具體使用方案

時間:2015-06-28 00:00:00 來源:IT貓撲網 作者:網管聯(lián)盟 我要評論(0)

  你是否對Oracle數(shù)據(jù)庫中null的實際操作感到十分頭疼?如果是這樣子的話,以下的文章將會給你相應的解決方案,以下的文章主要是介紹Oracle數(shù)據(jù)庫中null的具體使用的方案,以下就是相關內容的具體描述。

  問:什么是NULL?

  答:在我們不知道具體有什么數(shù)據(jù)的時候,也即未知,可以用NULL,

  我們稱它為空,Oracle數(shù)據(jù)庫中,含有空值的表列長度為零。

  Oracle允許任何一種數(shù)據(jù)類型的字段為空,除了以下兩種情況:

  1、主鍵字段(primary key),

  2、定義時已經加了NOT NULL限制條件的字段

  說明:

  1、等價于沒有任何值、是未知數(shù)。

  2、NULL與0、空字符串、空格都不同。

  3、對空值做加、減、乘、除等運算操作,結果仍為空。

  4、NULL的處理使用NVL函數(shù)。

  5、比較時使用關鍵字用"is null"和"is not null"。

  6、空值不能被索引,所以查詢時有些符合條件的數(shù)據(jù)可能查不出來,

  count(*)中,用nvl(列名,0)處理后再查。

  7、排序時比其他數(shù)據(jù)都大(索引默認是降序排列,小→大),

  所以NULL值總是排在最后。

  使用方法:

  1.SQL> select 1 from dual where nullnull=null;

  沒有查到記錄

  1.SQL> select 1 from dual where null='';

  沒有查到記錄

  1.SQL> select 1 from dual where ''='';

  沒有查到記錄

  SQL> select 1 from dual where null is null;

  1

  ---------

  1

  SQL> select 1 from dual where nvl(null,0)=nvl(null,0);

  1

  ---------

  1

  對空值做加、減、乘、除等運算操作,結果仍為空。

  1.SQL> select 1+null from dual;

  2.SQL> select 1-null from dual;

  3.SQL> select 1*null from dual;

  4.SQL> select 1/null from dual;

  查詢到一個記錄。

  注:這個記錄就是SQL語句中的那個null

  設置某些列為空值

  update table1 set 列1=NULL where 列1 is not null;

  現(xiàn)有一個商品銷售表sale,表結構為:

  month  char(6)  --月份

  sellnumber(10,2) --月銷售金額

  1.create table sale (month char(6),sell number);

  2.insert into sale values('200001',1000);

  3.insert into sale values('200002',1100);

  4.insert into sale values('200003',1200);

  5.insert into sale values('200004',1300);

  6.insert into sale values('200005',1400);

  7.insert into sale values('200006',1500);

  8.insert into sale values('200007',1600);

  9.insert into sale values('200101',1100);

  10.insert into sale values('200202',1200);

  11.insert into sale values('200301',1300);

  12.insert into sale values('200008',1000);

  13.insert into sale(month) values('200009');

  注意:這條記錄的sell值為空

  1.commit;

  共輸入12條記錄

  1.SQL> select * from sale where sell like '%';

  2.MONTH SELL

  3.------ ---------

  4.200001 1000

  5.200002 1100

  6.200003 1200

  7.200004 1300

  8.200005 1400

  9.200006 1500

  10.200007 1600

  11.200101 1100

  12.200202 1200

  13.200301 1300

  14.200008 1000

  查詢到11記錄。

  結果說明:

  查詢結果說明此SQL語句查詢不出列值為NULL的字段

  此時需對字段為NULL的情況另外處理。

  1.SQL> select * from sale where sell like '%' or sell is null;

  2.SQL> select * from sale where nvl(sell,0) like '%';

  3.MONTH SELL

  4.------ ---------

  5.200001 1000

  6.200002 1100

  7.200003 1200

  8.200004 1300

  9.200005 1400

  10.200006 1500

  11.200007 1600

  12.200101 1100

  13.200202 1200

  14.200301 1300

  15.200008 1000

  16.200009

  查詢到12記錄。

  Oracle數(shù)據(jù)庫的空值就是這么的用法,我們最好熟悉它的約定,以防查出的結果不正確。

關鍵詞標簽:Oracle,數(shù)據(jù)庫,null

相關閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索 為UNIX服務器設置Oracle全文檢索

相關下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法