本篇文章将介绍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';
以上就是mysql默认值约束怎么用的详细内容。
