Oracle數(shù)據(jù)庫(kù)中NULL值 |
發(fā)布時(shí)間: 2012/8/18 16:55:31 |
我們?cè)诓恢谰唧w有什么數(shù)據(jù)的時(shí)候,也即是未知,可以用null,我們稱它為空,在Oracle中含有空值的表的列長(zhǎng)度為零。 Oracle可以允許任何一種的數(shù)據(jù)類(lèi)型為空。除了(主鍵字段pk,定義的時(shí)候已經(jīng)增加了not null的限制條件的字段。 說(shuō)明: 等價(jià)于沒(méi)有任何的值,是未知數(shù)。 null和0,空字符串,空格都不同。 對(duì)空值做加,減,乘,除等運(yùn)算的操作結(jié)果還是空的。 null值的處理可以采用nvl函數(shù) 比較的時(shí)候采用is null和is not null 空值是不可以被索引的。所以查詢的時(shí)候有些符合條件的數(shù)據(jù)可能查詢不出來(lái)了。 count(*)中,用nvl處理后進(jìn)行查詢。nvl(列名,0) 排序的時(shí)候比其他的數(shù)據(jù)都大(索引默認(rèn)的排序是降序排列的,小到大),所以null在最后面 select 1 from dual where null=null; 未選定行 沒(méi)有查到記錄 select 1 from dual where null=''; 未選定行 沒(méi)有查到記錄 select 1 from dual wehre ''=''; 未選定行 沒(méi)有查詢到記錄 select 1 from dual where null is null; 未選定行 沒(méi)有查詢到記錄 對(duì)空值進(jìn)行加減乘除運(yùn)算的操作的,結(jié)果依舊是空的 select 1+null from dual; select 1-null from dual; select 1*null from dual; select 1/null from dual; 查詢到一個(gè)記錄 ,這個(gè)記錄就是sql語(yǔ)句中的那個(gè)null Oracle空值的用法,null就是null,和其他的類(lèi)型是沒(méi)有可比性的 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |