資料庫中 與null的區別

2021-07-09 02:40:05 字數 1313 閱讀 6069

null不是物件,''是物件 

從'',你就可以知道這是乙個字串型別的資料,是乙個長度為零的字串。 

從null,你只能知道這裡沒有賦過值,是空的,他不屬於任何資料型別。

我們在資料庫實際使用中,一般把字串型變數預設為'',數值型變數預設為0,這樣才能保正在進行邏輯運算時不產生型別不匹配的錯誤。

sql server中函式為:isnull(變數,值),

如對於整型變數,這樣去參加運算:

set @var=1+isnull(整型變數,0)

對於字元型變數,這樣去參加運算:

set @var=isnull(字元型變數,'')

ü  null不是值,它表示數值未知或者不確定

ü  null是乙個屬性 ,表示其中無內容,而空是表示數值為空,但有預設值,可能為0.

ü  null的判斷不能簡單的用=或!= 只能使用is (not) null來判斷.所以 is not null 和!=null的結果是完全不同的.雖然!=null編譯不會報錯,但是沒有人這樣來判斷某個欄位為null

ü  在資料庫中,空值用來表示實際值未知或無意義的情況。因為空值表示缺少資料,所以空值和其它值沒有可比性,即不能用等於、不等於、大於或小於和其它數值比較,當然也包括空值本身(但是在decode中例外,兩個空值被認為是等價)。測試空值只能用比較操作符is null 和is not null。如果使用帶有其它比較操作符的條件表示式,並且其結果依賴於空值,那麼其結果必定是null。在where條件中,oracle認為結果為null的條件為false,帶有這樣條件的select語句不返回行,也不返回錯誤資訊。

ü  新增或修改記錄某字段為『』時,到資料庫中此字段就是null(資料庫的預設值也是null)查詢時,不能用 的方式,只能 is null或is not null  ???

ü  三者的區別就是: 

isnull是一種型別測試,測試是否為空值(null)型別。 

isempty是一種值測試,測試是否是空值。但這個不同語言中採用的方法不同。 

=""是串測試,測試值是否為空值。

ü  建立資料庫的時候,對某個字段定義了 not null,但是,在寫入資料的時候,空字串''也能寫入成功:

空 (null) 值表示數值未知。空值不同於空白或零值。沒有兩個相等的空值。比較兩個空值或將空值與任何其它數值相比均返回未知,這是因為每個空值均為未知。

在寫入資料的時候,空字串'' 也是乙個確定的值,所以就算你定義了 not null 也可以被寫入。

ü  在定義中說,空值不與任何值相等。因此不能使用 = null 做判斷。在sql語句中,唯一可以使用 = null的就是update語句中的賦值語句,其他地方都不可以使用。

資料庫查詢 is null與 null的區別

在mysql中,篩選非空的時候經常會用到is not null和 null,這兩種方法單從字面上來看感覺是差不多的,其實如 果去執行一下試試的話差別會很大!為什麼會出現這種情況呢?null 表示什麼也不是,不能 所有的判斷,結果都是false,所有只能用 is null進行判斷。預設情況下,推薦使用...

資料庫中的null與函式ifnull

null值對於新手來說非常容易混淆,經常會被認為null與空字串 是一樣的,但事實上,這兩者是非常不一樣,null表示的是 a missing unknown value 而字串 是乙個確定的值。為了處理和null相關的比較,在mysql中可以用is null is not null isnull ...

關於資料庫中的NULL

1 不能對null使用等號 2 不等對null相加 相乘 結果都是null 10倍的null仍舊是null 3 不要使用特殊標記 1 0 來代替null 4 null不是字串 null string 返回null 並不是string 5 not null 返回null 並不是true 6 null ...