共計 1269 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這期內容當中丸趣 TV 小編將會給大家帶來有關 Mysql 中 NULL 和 Empty String 的區別是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
create table tablist(TABLE_SCHEMA varchar(40),TABLE_NAME varchar(40),COLUMN_NAME varchar(40),COLUMN_TYPE varchar(40),
IS_NULLABLE varchar(10),COLUMN_DEFAULT varchar(40),COLUMN_COMMENT varchar(1000),REMARK varchar(2000));
insert into tablist(TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT)
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT
from information_schema.`COLUMNS` where TABLE_SCHEMA= leo
然后查詢 tablist 表:
看看有哪些列沒有 comment 于是:
select * from tablist where COLUMN_COMMENT is null;
查到的結果居然是 Empty set。不過從以上查詢結果和 navicat 都能看出:null 值在結果集中顯示的是 null 的單詞, 而空字符串則顯示為空。
查過資料后發現 Mysql 的 null 值和空字符串是有區別的,這里很奇怪 COLUMN_COMMENT 在經過 insert 之后,null 值居然變成了空字符串(原因未明)。
使用 select * from tablist where COLUMN_COMMENT= 查詢正常。
NULL columns require additional space in the row to record whether their values are NULL.For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.
在 Mysql 的 myisam 引擎中,null 值占用額外的存儲空間(1bit),空字符串則完全不占用空間。同時 null 值在 B 樹索引中也無法被存儲,數據量大時會造成較嚴重的性能問題。
兩者的查詢方式也不一樣:null 值查詢使用 is null/is not null 查詢,而 empty string 使用 = 或者!= 查詢即可。
上述就是丸趣 TV 小編為大家分享的 Mysql 中 NULL 和 Empty String 的區別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。
向 AI 問一下細節