MySQL 是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),經(jīng)常用于 Web 應(yīng)用程序的數(shù)據(jù)存儲。在 MySQL 中,我們可以使用非空約束來限制表中的列不得為空。這可以確保數(shù)據(jù)的完整性和一致性,同時減少數(shù)據(jù)錯誤的可能性。
非空約束可以應(yīng)用于單個列或多列。在創(chuàng)建表時,我們可以使用NOT NULL
關(guān)鍵字在列定義中指定非空約束,如下所示:
CREATE TABLE Example ( id INT NOT NULL, name VARCHAR(50) NOT NULL, email VARCHAR(100) );
在上述示例中,id
和name
列都被設(shè)置為非空約束。這意味著插入數(shù)據(jù)時必須為這兩列提供值,否則將出現(xiàn)錯誤。
如果我們想更改現(xiàn)有表的列以添加非空約束,可以使用 ALTER TABLE 語句,如下所示:
ALTER TABLE Example MODIFY id INT NOT NULL;
在上述示例中,我們將id
列修改為非空約束。
提示:如果我們嘗試在未為非空列提供值的情況下插入數(shù)據(jù),將會得到一個錯誤,如下所示:
INSERT INTO Example (name) VALUES ('John Doe'); -- ERROR: Column 'id' cannot be null
在 MySQL 中,我們還可以使用關(guān)鍵字DEFAULT
來為非空列提供默認(rèn)值。如果沒有為非空列提供值,則將使用默認(rèn)值。
例如,如果我們想為email
列提供一個默認(rèn)值,可以使用以下 SQL 語句:
ALTER TABLE Example MODIFY email VARCHAR(100) NOT NULL DEFAULT 'example@example.com';
在上述示例中,我們將email
列修改為非空列,并將默認(rèn)值設(shè)置為'example@example.com'
。如果我們在插入數(shù)據(jù)時不提供值,將使用默認(rèn)值。
在 MySQL 中使用非空約束非常有用,可以確保數(shù)據(jù)的完整性和一致性。現(xiàn)在,您已經(jīng)了解了 MySQL 中如何設(shè)置非空約束,請盡情使用!