51 前導發端:網海拾貝
問:什麼是null?答:在我們不曉得具體有什麼資料的光陰,也即未知,可以用null,
我們稱它為空,oracle中,含有空值的表列長度為零。
oracle允許任何一種資料型別的字段為空,除了以下兩種狀況:
1、主鍵字段(primary key),
2、定義時已經加了not null限定前提的字段
宣告:1、等價於沒有任何值、是未知數。
2、null與0、空字串、空格都差別。
3、對空值做加、減、乘、除等運算操作,效果仍為空。
4、null的措置應用nvl函式。
5、比較時應用樞紐字用「is null」和「is not null」。
6、空值不克不及被索引,所以盤詰時有些切合前提的資料可以大概查不出來,
count(*)中,用nvl(列名,0)措置後再查。
7、排序時比其他資料都年夜(索引默許是降序排列,小→年夜),
所以null值老是排在末了。
應用方法:
sql> select 1 from dual where null=null;
沒有查到記實
sql> select 1 from dual where null='';
沒有查到記實
sql> select 1 from dual where ''='';
沒有查到記實
sql> select 1 from dual where null is null;
1---------
1sql> select 1 from dual where nvl(null,0)=nvl(null,0);
1---------
1對空值做加、減、乘、除等運算操作,效果仍為空。
sql> select 1 null from dual;
sql> select 1-null from dual;
sql> select 1*null from dual;
sql> select 1/null from dual;
盤詰到乙個記實.
注:這個記實便是sql語句中的阿誰null
設定某些列為空值
update table1 set 列1=null where 列1 is not null;
現有乙個商品販賣表sale,表結構為:
month char(6) --月份
sellnumber(10,2) --月販賣金額
create table sale (month char(6),sell number);
insert into sale values('200001',1000);
insert into sale values('200002',1100);
insert into sale values('200003',1200);
insert into sale values('200004',1300);
insert into sale values('200005',1400);
insert into sale values('200006',1500);
insert into sale values('200007',1600);
insert into sale values('200101',1100);
insert into sale values('200202',1200);
insert into sale values('200301',1300);
insert into sale values('200008',1000);
insert into sale(month) values('200009');
(垂青:這條記實的sell值為空)
commit;
共輸入12條記實
sql> select * from sale where sell like '%';
month sell
------ ---------
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
200008 1000
盤詰到11記實.
效果宣告:
盤詰績績宣告此sql語句盤詰不出列值為null的字段
此時需對字段為null的狀況別的措置。
sql> select * from sale where sell like '%' or sell is null;
sql> select * from sale where nvl(sell,0) like '%';
month sell
------ ---------
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
200008 1000
200009
盤詰到12記實.
oracle的空值便是這麼的用法,我們最好熟悉它的商定,以防查出的效果不準確
Oracle中null的使用
問 什麼是null?答 在我們不知道具體有什麼資料的時候,也即未知,可以用null,我們稱它為空,oracle中,含有空值的表列長度為零。oracle允許任何一種資料型別的字段為空,除了以下兩種情況 1 主鍵字段 primary key 2 定義時已經加了not null限制條件的字段 說明 1 等...
Oracle中null的使用詳解
問 什麼是null?答 在我們不知道具體有什麼資料的時候,也即未知,可以用null,我們稱它為空,oracle中,含有空值的表列長度為零。oracle允許任何一種資料型別的字段為空,除了以下兩種情況 1 主鍵字段 primary key 2 定義時已經加了not null限制條件的字段 說明 1 等...
Oracle中null的使用詳解
問 什麼是null?答 在我們不知道具體有什麼資料的時候,也即未知,可以用null,我們稱它為空,oracle中,含有空值的表列長度為零。oracle允許任何一種資料型別的字段為空,除了以下兩種情況 1 主鍵字段 primary key 2 定義時已經加了not null限制條件的字段 說明 1 等...