使用NULL值
NULL 值就是沒有值或缺值。允許 NULL 值的欄位也允許在插入行時不給出該列的值。不允許 NULL 值的列不接受該列沒有值的行,換句話說,在插入或更新行時,該列必須有值。
每個表列或是 NULL 列,或是 NOT NULL 列,這種狀態在建立時由表的定義規定。請看下面的範例:
輸入:
create table orders ( order_num int NOT NULL AUTO_INCREMENT, order_date datetime NOT NULL, cust_id int NOT NULL, PRIMARY KEY (order_num) )ENGINE = InnoDB;
分析:這條語句建立本書中所使用的 orders 表。 orders 包含3個列,分別是訂單號碼、訂單日期和客戶ID。所有3個欄位都需要,因此每個欄位的定義都含有關鍵字 NOT NULL 。這將會阻止插入沒有值的列。如果試圖插入沒有值的列,將傳回錯誤,且插入失敗。
下一個範例將建立混合了 NULL 和 NOT NULL 欄位的表:
#輸入:
create table vendors ( vend_id int NOT NULL AUTO_INCREMENT, vend_name char(50) NOT NULL, vend_address char(50) NULL, vend_city char(50) NULL, vend_state char(5) NULL, vend_zip char(10) NULL, vend_country char(50) NULL, PRIMARY KEY (vend_id ) )ENGINE = InnoDB;
分析:這條語句建立本書中使用的 vendors 表。供應商ID和供應商名字列是必要的,因此指定為 NOT NULL 。其餘5個列全都允許 NULL 值,所以不指定 NOT NULL 。 NULL 為預設設置,如果不指定 NOT NULL ,則認為指定的是 NULL 。
mysql null和空的區別
理解 NULL 不要把 NULL 值與空字串混淆。 NULL 值是沒有值,它不是空字串。如果指定 '' (兩個單引號,其間沒有字元),這在 NOT NULL 列中是允許的。空串是一個有效的值,它不是無值。 NULL 值以關鍵字 NULL 而非空串指定。
以上是關於mysql資料表中NULL值的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!