引見Oracle中null的應用方法。

2022-08-29 13:42:19 字數 2887 閱讀 1428

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 等...