首頁  >  文章  >  資料庫  >  關於mysql資料表中NULL值的詳解

關於mysql資料表中NULL值的詳解

巴扎黑
巴扎黑原創
2017-05-15 14:19:111842瀏覽

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn