MySQL22--默认约束

默认约束

默认约束,其特点有:
在插入记录/更新记录时,如果不为该字段赋值,则使用默认值;
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;
posted @ 2021-10-24 15:56  暄总-tester  阅读(352)  评论(0)    收藏  举报