视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL默认值约束怎么用
2020-11-09 08:37:24 责编:小采
文档
 本篇文章将介绍default 默认约束,如何使用和改动后的效果。

推荐课程:MySQL教程。

常用数据库约束:

default 默认约束;

not null:非空约束,指定某列不为NULL;

unique:唯一约束,指定某列和几列组合的数据不能重复;

primary key:主键约束,指定某列的数据非空、唯一、不能重复;

foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据;

check:检查,指定一个表达式,用于检验指定数据;

1、default 定义列的默认值

当插入一个新行到表中时,没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值;如果没有,则为(NULL)。

 -- 创建一张user表
CREATE TABLE `test`.`user`( 
 `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
 `name` VARCHAR(225) COMMENT '姓名',
 `sex` TINYINT(1) DEFAULT 1 COMMENT '性别 1男 0女',
 PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci

给字段添加默认约束:

1.在创建表时:直接在字段类型的后面加上 DEFAULT(value),具体看创建user表时的sex字段;
2.在存在表的情况下添加:
 使用sql语句 ALTER TABLE `user` MODIFY `sex` TINYINT(1) DEFAULT 1; 即可为添加 `sex` 字段添加默认约束;
 使用sql语句 ALTER TABLE `user` MODIFY `name` VARCHAR(225)DEFAULT '小明'; 即可为添加 `name` 字段添加默认约束;

tips:默认约束是不可以使用函数的,所以 ALTER TABLE `user` ADD COLUMN `date` DATETIME DEFAULT NOW() AFTER `sex`; 是不可行的。

移除默认约束:

移除默认约束和添加默认约束操作方式一样,都是修改表的字段;
ALTER TABLE `user` MODIFY `sex` TINYINT(1); 
这样就移除了sex的默认约束。

现在我们插入一条数据:

INSERT INTO `user`(`name`) VALUES('小明');

SELECT * FROM `user`;

结果:
-----------------------------------
id name sex 
 小明 1
-----------------------------------

当然我们也可以:

INSERT INTO `user`(`name`,`sex`) VALUES('小明',DEFAULT);
SELECT * FROM `user`;

结果:
---------------------------------
id name sex 
 小明 1
---------------------------------

如果你这样:

INSERT INTO `user`(`sex`) VALUES(DEFAULT);
SELECT * FROM `user`;

结果:
-----------------------------------
id name sex 
 (NULL) 1
-----------------------------------


tips:在更新和查询都可以用DEFAULT来操作;

-- 查询sex字段的默认值 SELECT DEFAULT(`sex`) FROM `user`; 
-- 更新sex为默认值 UPDATE `user` SET `sex` = DEFAULT WHERE `id`='1';

下载本文
显示全文
专题