九色成人免费视频_久久一区视频_视频一区国产精品_精品视频在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle中的NULL和空字符串

發布時間:  2012/8/30 16:47:18

Oracle中有個關鍵字叫NULL,它表示某個值是未知的、是不確定的。既然是未知的,就有無數種的可能性。因此,NULL并不是一個確定的值。先看兩個例子吧:

例1:

declare 

v_b1 boolean:=null; --布爾值可以賦值null.當然它另外兩種值只能是true,false了


 

v_a int := null; 
v_b int := null;      --整數可以給它賦值null
v_s  varchar2(20):= null ; --字符也可以賦值null
begin
if(v_a= v_b) then          --v_a 和v_b都是null但此處判斷的結果是它們并不相等.改成v_a =null結果仍然是一樣
dbms_output.put_line('v_a equal v_b');
else
dbms_output.put_line('v_a not equal v_b');--輸出這個結果
end if;

if(v_b1) then          --把v_b1改成not v_b1結果都一樣.也就是v_b1和把它取反都不會是true
dbms_output.put_line('v_b1 equal true');
else
dbms_output.put_line('v_b1 is not true');--輸出這個結果
end if;

if(true or v_b1) then          --輸出v_b1 equal true
dbms_output.put_line('v_b1 equal true');
else
dbms_output.put_line('v_b1 is not true'); -- 如果把前面的判斷條件改成true and v_b1 則輸入這條語句
end if;
end;


 

例2:

create table test (ename char(1),constraint ck_test check(ename in ('a',null)));

--上面的語句創建一個表,只有一列ename,給此列添加約束條件,它的值只能在列表('a',null)中.但實際上我們可以插入任何字符.這時貌似null可以代表所有的字符了.去掉它只能插入'a'

但如果我們這樣創建表

create table test1 (ename char(1),constraint ck_test check(ename not in ('a',null)));

--按我們猜想如果null能代表所有字符了那它取反就是不能輸入任何字符.但實際上不是.此處它貌似沒起任何作用.去掉它和不去掉效果一樣.都可以插入除'a'外的任何字符


1.怎么理解null的這些用法



看了上面兩個例子是不是有點暈了啊,其實我們可以這樣理解.既然null是個不確定的類型,就可以轉變成任何類型中的任何值.就像C#中的object類型.它是任何類型的父類.可以代表任何類型.我們可以在運行程序時再去動態確定它的具體類型.那么null如果是處在一個條件判斷條件中得讓它取特定類型的所有值去進行判斷.如果結果都為真才為真.

如例1中兩個整數值v_a,v_b都是null.要讓他們相等得讓null取所有的整數去判斷.那樣自然不可能都相等.所以為假.而true or v_b1之所以為真了是因為or前面的為真的話不去對后面的v_b1做判斷了.而v_b1和not v_b1都為假則可以認為v_b1可以取true和false,把這兩種值都代入則不可能保證都為true所以最終結果為false.

這樣來理解了null就不難明白為什么我們在一個表中插入一個null值.但我們不能通過判斷條件=null來查詢.不過Oracle提供了關鍵字is來判斷一個值是否是null.

例2中第二種情況是有點反常.我們就當作如果什么都不讓用戶插入,但建個表沒啥意義.所以不這樣
 

至于Oracle后臺是怎么存儲null值和操作null值的就不清楚了啊.


 

2.null和空字符串



其實空字符串和其他字符的操作是一樣的.只是用它的時候眼神要好點,別搞錯了.舉個例子

先建表create table arwen(ename varchar2(1)); --此列只能插入一個字符
 

insert into arwen values(' ');--注意引號中是一個空格.如果是兩個空格會出錯的,因為是兩個字符了.

select * from arwen where ename = ' '; --返回一行.這里引號中也必須是一個空格.

如果是''也就是引號中沒空格.那插入它時Oracle默認把它變成null了.所以如果引號中沒空格我們就不能叫它空字符串了啊.不知道叫啥好啊.覺得有null了它好像有點多余

例如create table arwen(eno int);

insert into arwen values(44);

insert into arwen alues(''); --引號是沒有空格
 

insert into arwen alues(null);

這上面三條語句都會成功插入.

雖然''被默認轉換成null但我們不能用is '' 或=''來用它

例如你select count(*) from arwen 或者select count(*) from arwen where ename is null--結果是3 
 

但如果是select count(*) from arwen where ename is ‘’ 或者 select count(*) from arwen where ename =‘’結果就是0


 

3.我們要用到null時常會用到函數nvl函數.



就是如果碰到哪個地方是null就把它轉換成其他的東東

例如上面插入三行后我們這樣查找select nvl(ename,11) from arwen; --結果是44     11     11

ename如果是null就轉換成11如果不是null就原樣輸出


 


 

4.使用null時注意



在用avg,max,min這些函數時會把null忽略掉

比如create table arwen(eno int);

insert into arwen values(1);

insert into arwen values(2);

insert into arwen values(null);

select avg(eno) from arwen;--結果為1.5.這是因為忽略掉null了不然應該是1的

select max(eno) from arwen;--結果為2

如果在排序中會把null當作最大值處理.就像無窮大一樣


 

在往表中插入數據時如果某列沒有插入值就讓它為null,這對用戶來說是非常方便的.但在其他地方用它好像沒太大必要.所以盡量別用好了.

只是在對表做些操作時多注意考慮到null判斷就好.多用nvl函數和is null判斷


本文出自:億恩科技【www.23lll.com】


 

v_a int := null; 
v_b int := null;      --整數可以給它賦值null
v_s  varchar2(20):= null ; --字符也可以賦值null
begin
if(v_a= v_b) then          --v_a 和v_b都是null但此處判斷的結果是它們并不相等.改成v_a =null結果仍然是一樣
dbms_output.put_line('v_a equal v_b');
else
dbms_output.put_line('v_a not equal v_b');--輸出這個結果
end if;

if(v_b1) then          --把v_b1改成not v_b1結果都一樣.也就是v_b1和把它取反都不會是true
dbms_output.put_line('v_b1 equal true');
else
dbms_output.put_line('v_b1 is not true');--輸出這個結果
end if;

if(true or v_b1) then          --輸出v_b1 equal true
dbms_output.put_line('v_b1 equal true');
else
dbms_output.put_line('v_b1 is not true'); -- 如果把前面的判斷條件改成true and v_b1 則輸入這條語句
end if;
end;


 

例2:

create table test (ename char(1),constraint ck_test check(ename in ('a',null)));

--上面的語句創建一個表,只有一列ename,給此列添加約束條件,它的值只能在列表('a',null)中.但實際上我們可以插入任何字符.這時貌似null可以代表所有的字符了.去掉它只能插入'a'

但如果我們這樣創建表

create table test1 (ename char(1),constraint ck_test check(ename not in ('a',null)));

--按我們猜想如果null能代表所有字符了那它取反就是不能輸入任何字符.但實際上不是.此處它貌似沒起任何作用.去掉它和不去掉效果一樣.都可以插入除'a'外的任何字符


1.怎么理解null的這些用法



看了上面兩個例子是不是有點暈了啊,其實我們可以這樣理解.既然null是個不確定的類型,就可以轉變成任何類型中的任何值.就像C#中的object類型.它是任何類型的父類.可以代表任何類型.我們可以在運行程序時再去動態確定它的具體類型.那么null如果是處在一個條件判斷條件中得讓它取特定類型的所有值去進行判斷.如果結果都為真才為真.

如例1中兩個整數值v_a,v_b都是null.要讓他們相等得讓null取所有的整數去判斷.那樣自然不可能都相等.所以為假.而true or v_b1之所以為真了是因為or前面的為真的話不去對后面的v_b1做判斷了.而v_b1和not v_b1都為假則可以認為v_b1可以取true和false,把這兩種值都代入則不可能保證都為true所以最終結果為false.

這樣來理解了null就不難明白為什么我們在一個表中插入一個null值.但我們不能通過判斷條件=null來查詢.不過Oracle提供了關鍵字is來判斷一個值是否是null.

例2中第二種情況是有點反常.我們就當作如果什么都不讓用戶插入,但建個表沒啥意義.所以不這樣
 

至于Oracle后臺是怎么存儲null值和操作null值的就不清楚了啊.


 

2.null和空字符串



其實空字符串和其他字符的操作是一樣的.只是用它的時候眼神要好點,別搞錯了.舉個例子

先建表create table arwen(ename varchar2(1)); --此列只能插入一個字符
 

insert into arwen values(' ');--注意引號中是一個空格.如果是兩個空格會出錯的,因為是兩個字符了.

select * from arwen where ename = ' '; --返回一行.這里引號中也必須是一個空格.

如果是''也就是引號中沒空格.那插入它時Oracle默認把它變成null了.所以如果引號中沒空格我們就不能叫它空字符串了啊.不知道叫啥好啊.覺得有null了它好像有點多余

例如create table arwen(eno int);

insert into arwen values(44);

insert into arwen alues(''); --引號是沒有空格
 

insert into arwen alues(null);

這上面三條語句都會成功插入.

雖然''被默認轉換成null但我們不能用is '' 或=''來用它

例如你select count(*) from arwen 或者select count(*) from arwen where ename is null--結果是3 
 

但如果是select count(*) from arwen where ename is ‘’ 或者 select count(*) from arwen where ename =‘’結果就是0


 

3.我們要用到null時常會用到函數nvl函數.



就是如果碰到哪個地方是null就把它轉換成其他的東東

例如上面插入三行后我們這樣查找select nvl(ename,11) from arwen; --結果是44     11     11

ename如果是null就轉換成11如果不是null就原樣輸出


 


 

4.使用null時注意



在用avg,max,min這些函數時會把null忽略掉

比如create table arwen(eno int);

insert into arwen values(1);

insert into arwen values(2);

insert into arwen values(null);

select avg(eno) from arwen;--結果為1.5.這是因為忽略掉null了不然應該是1的

select max(eno) from arwen;--結果為2

如果在排序中會把null當作最大值處理.就像無窮大一樣


 

在往表中插入數據時如果某列沒有插入值就讓它為null,這對用戶來說是非常方便的.但在其他地方用它好像沒太大必要.所以盡量別用好了.

只是在對表做些操作時多注意考慮到null判斷就好.多用nvl函數和is null判斷


本文出自:億恩科技【www.enidc.com】
-->

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    九色成人免费视频_久久一区视频_视频一区国产精品_精品视频在线观看
    一区在线观看| 亚洲无限av看| 国产精品久久久亚洲一区| 美日韩精品视频| 欧美在线观看一区| 亚洲欧美中文另类| 亚洲午夜成aⅴ人片| 日韩视频永久免费观看| 最新日韩在线视频| 亚洲国产成人久久| 久久精品国产久精国产一老狼| 亚洲在线观看免费| 亚洲五月婷婷| 亚洲社区在线观看| 一区二区三区免费看| 亚洲日韩欧美一区二区在线| 亚洲国产综合在线| 亚洲高清视频的网址| 亚洲二区三区四区| 在线成人www免费观看视频| 黄网站免费久久| 黄色成人在线网址| 狠狠色丁香久久婷婷综合丁香| 国产日韩一区二区三区| 国产精品亚洲视频| 国产精品私拍pans大尺度在线| 国产精品成人在线观看| 国产精品video| 国产精品伦一区| 国产精品视频精品视频| 国产精品区二区三区日本| 国产精品美女久久久久aⅴ国产馆| 国产精品久久久久久久久免费樱桃 | 免费在线一区二区| 欧美肥婆在线| 欧美日韩日韩| 国产精品久久久久一区二区三区共| 国产精品成人在线观看| 国产麻豆综合| 红桃av永久久久| 亚洲国产精品嫩草影院| 日韩视频一区二区在线观看 | 香蕉久久夜色精品国产使用方法| 亚洲欧美综合精品久久成人| 欧美一级片久久久久久久| 午夜精品久久久久久久久久久久| 久久成人精品一区二区三区| 亚洲激情成人| 亚洲视频国产视频| 欧美自拍偷拍| 蜜桃av一区二区三区| 欧美日韩免费在线视频| 国产精品一二三视频| 韩国av一区二区三区四区| 亚洲国产日韩欧美综合久久| 一本色道久久99精品综合| 午夜精品久久99蜜桃的功能介绍| 久久成人这里只有精品| 亚洲精品综合精品自拍| 亚洲欧美电影在线观看| 久久精品一本久久99精品| 欧美高清自拍一区| 国产精品一区二区三区观看| 在线观看成人小视频| 99精品福利视频| 欧美一区二区免费| 9人人澡人人爽人人精品| 亚洲欧美日韩精品综合在线观看| 久久躁日日躁aaaaxxxx| 久久理论片午夜琪琪电影网| 欧美日本国产视频| 国产亚洲欧美日韩一区二区| 亚洲高清电影| 午夜日本精品| 一区二区三区av| 久久久人成影片一区二区三区 | 久久野战av| 欧美三日本三级少妇三99| 国产一本一道久久香蕉| 亚洲日本电影| 久久成人资源| 亚洲欧美在线免费| 欧美大片18| 国产偷久久久精品专区| 亚洲美女在线观看| 亚洲黄色免费电影| 香蕉视频成人在线观看| 欧美区日韩区| 极品少妇一区二区| 亚洲一区二区三区涩| 日韩小视频在线观看| 久久人人97超碰人人澡爱香蕉| 欧美亚日韩国产aⅴ精品中极品| 精品福利免费观看| 午夜精品免费| 亚洲在线视频观看| 欧美精品久久久久久久久老牛影院| 国产手机视频精品| 这里只有视频精品| 日韩一级大片| 亚洲性线免费观看视频成熟| 男女激情视频一区| 国产午夜亚洲精品理论片色戒| 一区二区高清在线观看| 亚洲伦理一区| 欧美aⅴ99久久黑人专区| 国产一区再线| 午夜久久久久久久久久一区二区| 亚洲一区二区久久| 久久亚洲精选| 国产一区二区精品久久91| 亚洲字幕在线观看| 亚洲一区精品电影| 欧美日韩美女一区二区| 亚洲每日在线| 夜夜精品视频一区二区| 欧美成人中文| 亚洲国产99| 亚洲日本成人网| 欧美91精品| 亚洲国产成人不卡| 亚洲精品1区2区| 你懂的国产精品| 1000部国产精品成人观看| 亚洲国产精品女人久久久| 久久这里有精品视频| 国产一区二区三区在线观看视频| 亚洲在线黄色| 久久丁香综合五月国产三级网站| 国产精品一卡二| 午夜精品久久久久久久久久久久| 欧美伊人久久久久久午夜久久久久 | 国产香蕉97碰碰久久人人| 性刺激综合网| 久久国产精品高清| 国产在线高清精品| 久久精品亚洲热| 欧美 日韩 国产 一区| 亚洲成人原创| 日韩亚洲成人av在线| 欧美日韩系列| 亚洲一区不卡| 欧美主播一区二区三区| 国产一区二区三区久久久久久久久| 欧美中文字幕在线| 卡通动漫国产精品| 亚洲精品1234| 亚洲图片欧美日产| 国产精品系列在线播放| 午夜激情综合网| 玖玖综合伊人| 亚洲精品乱码久久久久| 亚洲专区免费| 国产一区二区三区自拍| 亚洲人成网站777色婷婷| 欧美日韩黄色大片| 亚洲视频网在线直播| 午夜精品久久久久久久久久久久久| 国产日韩精品入口| 亚洲第一综合天堂另类专| 欧美精品日本| 亚洲永久精品大片| 另类激情亚洲| 日韩亚洲国产精品| 欧美一区国产二区| 亚洲二区在线视频| 亚洲在线中文字幕| 激情久久久久久| 99视频精品在线| 国产色综合久久| 日韩视频永久免费| 国产欧美日韩激情| 亚洲日本中文字幕区| 欧美性猛交xxxx乱大交退制版| 欧美中文字幕久久| 欧美三级欧美一级| 久久av一区| 欧美日韩一区三区四区| 亚欧成人在线| 欧美精品久久久久久久免费观看| 亚洲自啪免费| 欧美精品成人一区二区在线观看| 亚洲综合日本| 欧美日韩一区二区欧美激情| 久久国产精品久久精品国产| 欧美日韩在线精品| 亚洲国产经典视频| 国产精品久久久久久久9999 | 99精品国产99久久久久久福利| 国产精品普通话对白| 亚洲免费播放| 国模吧视频一区| 亚洲欧美电影在线观看| 亚洲黄色性网站| 久久国产夜色精品鲁鲁99| 999在线观看精品免费不卡网站| 久久深夜福利| 午夜视频一区在线观看| 欧美日韩一区二区视频在线观看| 亚洲国产成人av好男人在线观看|