資料庫 null值處理及元資料

2021-10-01 04:12:21 字數 1617 閱讀 4894

我們已經知道 mysql 使用 sql select 命令及 where 子句來讀取資料表中的資料,但是當提供的查詢條

件字段為 null 時,該命令可能就無法正常工作。

為了處理這種情況,mysql提供了三大運算子: 

is null: 當列的值是 null,此運算子返回 true。

is not null: 當列的值不為 null, 運算子返回 true。

<=>: 比較操作符(不同於=運算子),當比較的的兩個值為 null 時返回 true。

關於 null 的條件比較運算是比較特殊的。你不能使用 = null 或 != null 在列中查詢 null 值 。

在 mysql 中,null 值與任何其它值的比較(即使是 null)永遠返回 false,即 null = null 返回

false 。

mysql 中處理 null 使用 is null 和 is not null 運算子。

你可能想知道mysql以下三種資訊:

查詢結果資訊: select, update 或 delete語句影響的記錄數。

資料庫和資料表的資訊: 包含了資料庫及資料表的結構資訊。

mysql伺服器資訊: 包含了資料庫伺服器的當前狀態,版本號等。

在mysql的命令提示符中,我們可以很容易的獲取以上伺服器資訊。

以下命令語句可以在 mysql 的命令提示符使用,也可以在指令碼中 使用,如php指令碼。

select version( ) 伺服器版本資訊

select database( ) 當前資料庫名 (或者返回空) 

select user( ) 當前使用者名稱

show status 伺服器狀態

show variables 伺服器配置變數

當我們需要修改資料表名或者修改資料表字段時,就需要使用到mysql alter命令。

如下命令使用了 alter 命令及 drop 子句來刪除以上建立表的 i 字段: 

mysql> alter table testalter_tbl drop i;
如果資料表中只剩餘乙個欄位則無法使用drop來刪除字段。

mysql 中使用 add 子句來向資料表中新增列,如下例項在表 testalter_tbl 中新增 i 字段,並定義資料類

型:

mysql> alter table testalter_tbl add i int;
執行以上命令後,i 欄位會自動新增到資料表字段的末尾

如果需要修改字段型別及名稱, 你可以在alter命令中使用 modify 或 change 子句 。

例如,把字段 c 的型別從 char(1) 改為 char(10),可以執行以下命令: 

mysql> alter table testalter_tbl modify c char(10);
如果需要修改資料表的名稱,可以在 alter table 語句中使用 rename 子句來實現。

嘗試以下例項將資料表 testalter_tbl 重新命名為 alter_tbl:

mysql> alter table testalter_tbl rename to alter_tbl;

查詢資料庫,處理NULL值問題

在做機房收費系統時,每當從資料庫中查詢資料並顯示到窗體介面時,如果查詢的記錄中有字段值為null時,就會報錯 比如 例子可能不恰當,因為註冊時不允許不輸入學生姓名。但是就是那個意思 卡號1 學號為1 上機時,在上機介面要顯示上機資訊 學號 姓名 性別 系別 上機時要聯結三個表 cardinfo st...

資料庫的null值

資料庫的null值給我開了乙個小玩笑,同時我也記住了以後遇到這種問題要怎麼處理了。在我的link表中backupid欄位只有2個值 2 和null。現在我想排除掉backupid字段值為2的記錄,剩下所有為null的記錄。我在pl sql中執行如下語句,得不得任何記錄結果 select from l...

golang orm資料庫插入null值

不知道大家在用golang orm框架的時候有沒有遇到過這個問題,比如有表 person 字段 age name,name不能重複所以設定了唯一索引 unique go 結構體 type person struct大家都知道,stirng的預設值為空字串 所以在插入的時候,name預設就被orm框架...