<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    新的起點(diǎn)

    新的起點(diǎn)
    隨筆 - 9, 文章 - 1, 評(píng)論 - 1, 引用 - 0
    數(shù)據(jù)加載中……

    Oracle數(shù)據(jù)庫中null的使用詳解

        問:什么是NULL?

      答:在我們不知道具體有什么數(shù)據(jù)的時(shí)候,也即未知,可以用NULL,我們稱它為空,ORACLE中,含有空值的表列長(zhǎng)度為零。ORACLE允許任何一種數(shù)據(jù)類型的字段為空,除了以下兩種情況:

      1、主鍵字段(primary key),

      2、定義時(shí)已經(jīng)加了NOT NULL限制條件的字段。


    附加說明:

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

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

      3、對(duì)空值做加、減、乘、除等運(yùn)算操作,結(jié)果仍為空。

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

      5、比較時(shí)使用關(guān)鍵字用“is null”和“is not null”。

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

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

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

      所以NULL值總是排在最后。

      使用方法:

     1 SQL> select 1 from dual where null=null;
     2 沒有查到記錄
     3 SQL> select 1 from dual where null='';
     4 沒有查到記錄
     5 SQL> select 1 from dual where ''='';
     6 沒有查到記錄
     7 SQL> select 1 from dual where null is null;
     8         1
     9 ---------
    10         1
    11 SQL> select 1 from dual where nvl(null,0)=nvl(null,0);
    12         1
    13 ---------
    14         1
    15 

    對(duì)空值做加、減、乘、除等運(yùn)算操作,結(jié)果仍為空。

    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;

      查詢到一個(gè)記錄。

      注:這個(gè)記錄就是SQL語句中的那個(gè)null

      設(shè)置某些列為空值

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

      現(xiàn)有一個(gè)商品銷售表sale,表結(jié)構(gòu)為:

      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(monthvalues('200009');
    14          (注意:這條記錄的sell值為空)
    15 commit;

    共輸入12條記錄,此時(shí)我們做如下的查詢:

    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記錄。

      結(jié)果說明:

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

      此時(shí)需對(duì)字段為NULL的情況另外處理。

    SQL> select * from sale where sell like '%' or sell is null;
    SQL
    > select * from sale where nvl(sell,0like '%';
           
    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的空值就是這么的用法,我們最好熟悉它的約定,以防查出的結(jié)果不正確。

        對(duì)于NULL而言還有一個(gè)特殊的用法:

    select NULL from sale where sell>1500;

        以上語句中并沒有什么特殊的含義,它只是想得到是否有符合條件的記錄,而不在乎取出什么字段,于是用NULL來代替一下。

      總結(jié):null就是null,和別的類型沒有可比性。






    posted on 2008-12-14 19:35 軋鋼王子 閱讀(376) 評(píng)論(0)  編輯  收藏 所屬分類: Oracle 語法

    主站蜘蛛池模板: 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 亚洲国产成人手机在线观看| 国产亚洲精品国产| 久操免费在线观看| 亚洲欧美中文日韩视频| a级亚洲片精品久久久久久久| 亚洲毛片免费观看| 污网站在线免费观看| 亚洲一区免费观看| 亚洲高清无码专区视频| 亚洲美女视频免费| 国产精品高清免费网站| 亚洲国产午夜精品理论片| 中文字幕无码精品亚洲资源网| 69式国产真人免费视频| 亚欧乱色国产精品免费视频| 亚洲娇小性色xxxx| 亚洲情综合五月天| 国产成人精品免费视频软件| 午夜免费啪视频在线观看| 国产区图片区小说区亚洲区| 亚洲理论精品午夜电影| 国产精品亚洲片在线| 国产成人啪精品视频免费网| 亚洲一级毛片免费看| 中文字幕av免费专区| 羞羞漫画小舞被黄漫免费| 亚洲人成网站18禁止久久影院| 亚洲人成77777在线播放网站| 国产精品酒店视频免费看| 免费看男女下面日出水来| 嫩草在线视频www免费看| 国产区图片区小说区亚洲区| 亚洲精品伊人久久久久| 久久久久久亚洲av成人无码国产| 亚洲精品美女久久久久99小说| 大学生a级毛片免费观看 | 最近高清中文字幕无吗免费看| 91国内免费在线视频| 一级一黄在线观看视频免费| 亚洲AV女人18毛片水真多|