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