“not null”不是索引而是非空約束,用于指定字段的值不能為空;對于使用了非空約束的字段,如果添加數(shù)據(jù)時沒有指定值,則會報錯。設(shè)置非空約束的兩種方法:1、建表時設(shè)置,語法“CREATE TABLE 表名(字段名 數(shù)據(jù)類型 NOT NULL);”;2、修改表時設(shè)置,語法“ALTER TABLE 表名 CHANGE COLUMN 字段名 字段名 數(shù)據(jù)類型 NOT NULL;”。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
“not null”不是索引而是非空約束。
非空約束(NOT NULL)指字段的值不能為空。對于使用了非空約束的字段,如果用戶在添加數(shù)據(jù)時沒有指定值,數(shù)據(jù)庫系統(tǒng)就會報錯??梢酝ㄟ^ CREATE TABLE 或 ALTER TABLE 語句實現(xiàn)。在表中某個列的定義后加上關(guān)鍵字 NOT NULL 作為限定詞,來約束該列的取值不能為空。
比如,在用戶信息表中,如果不添加用戶名,那么這條用戶信息就是無效的,這時就可以為用戶名字段設(shè)置非空約束。
在創(chuàng)建表時設(shè)置非空約束
創(chuàng)建表時可以使用 NOT NULL 關(guān)鍵字設(shè)置非空約束,具體的語法格式如下:
CREATE TABLE 表名( 字段名 數(shù)據(jù)類型 NOT NULL );
示例:創(chuàng)建數(shù)據(jù)表 tb_dept4,指定部門名稱不能為空
CREATE TABLE tb_dept4 ( id INT(11) PRIMARY KEY, name VARCHAR(22) NOT NULL, location VARCHAR(50) );
DESC tb_dept4;
在修改表時添加非空約束
如果在創(chuàng)建表時忘記了為字段設(shè)置非空約束,也可以通過修改表進(jìn)行非空約束的添加。
修改表時設(shè)置非空約束的語法格式如下:
ALTER TABLE <表名 CHANGE COLUMN 字段名 字段名 數(shù)據(jù)類型 NOT NULL;
示例:修改數(shù)據(jù)表 tb_dept4,指定部門位置不能為空
ALTER TABLE tb_dept4 CHANGE COLUMN location location VARCHAR(50) NOT NULL;
【