MySQL 是一種流行的關(guān)系型數(shù)據(jù)庫,常常被用于管理和存儲大量數(shù)據(jù)。在 MySQL 中,可以為某些列添加NOT NULL
約束,這強(qiáng)制這些列不能包含NULL
值。同時(shí),還可以為某些列設(shè)置默認(rèn)值。
CREATE TABLE example_table (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
date_added DATE NOT NULL DEFAULT CURRENT_DATE
);
在上面的示例中,name
和date_added
列都被設(shè)置為NOT NULL
,表示這兩列不能包含NULL
值。同時(shí),date_added
列被設(shè)置了一個(gè)默認(rèn)值為當(dāng)前日期。
當(dāng)插入新的行時(shí),如果沒有顯式地為name
和date_added
列指定一個(gè)值,則會使用這些列的默認(rèn)值。
INSERT INTO example_table (id, name) VALUES (1, 'John');
在上面的示例中,沒有為date_added
列指定一個(gè)值,因此將使用當(dāng)前日期作為默認(rèn)值插入行。
如果嘗試插入具有任何NULL
值的行,則會失敗,因?yàn)檫@違反了NOT NULL
約束。
INSERT INTO example_table (id, name, date_added) VALUES (2, 'Doe', NULL);
在上面的示例中,因?yàn)樵?code>date_added列中提供了一個(gè)NULL
值,因此插入失敗。
可以使用ALTER TABLE
命令更改表的結(jié)構(gòu),以添加或刪除約束和默認(rèn)值。
ALTER TABLE example_table MODIFY COLUMN name VARCHAR(50) DEFAULT 'Unknown';
ALTER TABLE example_table MODIFY COLUMN date_added DATE;
ALTER TABLE example_table MODIFY COLUMN id INT AUTO_INCREMENT;
在上面的示例中,name
列的默認(rèn)值被更改為'Unknown'
。date_added
列的默認(rèn)值被刪除。id
列被設(shè)置為自動增量列。
在 MySQL 中,使用NOT NULL
和默認(rèn)值可以確保數(shù)據(jù)的完整性和一致性。這些約束可以防止意外插入空值或錯(cuò)誤類型的值。