mysql怎么约束指定默认值_【数据库】MySQL默认值约束怎么用

本篇文章将介绍default 默认约束,如何使用和改动后的效果。

推荐课程:MySQL教程。

89477e72690adf8475e38df715ce0f5c.png

常用数据库约束:

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';

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值