默认约束,其特点有:
在插入记录/更新记录时,如果不为该字段赋值,则使用默认值;
DEFAULT约束只有列级约束形式;
-- 默认约束 CREATE TABLE t11( id SMALLINT UNSIGNED NOT NULL KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL UNIQUE KEY, password VARCHAR(32) NOT NULL, sex BOOLEAN NOT NULL DEFAULT 0 ); DESC t11; INSERT t11 VALUES(NULL,'Tom', '123',DEFAULT); INSERT t11(username,password) VALUES('John', 'John'); SELECT * FROM t11;
-- 创建表时,添加默认值约束 CREATE TABLE word06( id INT PRIMARY KEY, name VARCHAR(30) UNIQUE, age INT(3) DEFAULT 18, address VARCHAR(50), wtime DATE ); DESC word06; INSERT INTo word06 VALUES(101,'赵六',20,'杭州','2021-04-08'); SELECT * FROM word06; INSERT INTo word06(id,name,address,wtime) VALUES(102,'田七','武汉','2021-04-10');
语法格式:
ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT 默认值;
-- 修改word06表,对wtime列,添加默认值约束,默认值为2021-04-01 ALTER TABLE word06 MODIFY wtime DATE DEFAULT '2021-04-01'; DESC word06;
-- 修改word06表,对address列添加默认值约束,默认值为北京 ALTER TABLE word06 MODIFY address VARCHAR(50) DEFAULT '北京'; DESC word06;
语法格式:
ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT NULL;
-- 删除word06表中,wtime列默认值约束 ALTER TABLE word06 MODIFY wtime DATE DEFAULT NULL; DESC word06;
-- 删除word06表中,age列默认值约束 ALTER TABLE word06 MODIFY age INT(3) DEFAULT NULL; DESC word06;