如何在MySQL中为空行设置默认值?

如何在MySQL中为空行设置默认值?

在MySQL中,当某些字段允许为空时,若插入数据时没有指定该字段的值,该字段会被默认设置为空。但是,当我们在设计表时,有时候希望该字段即使为空,也要有一个默认值。本文将介绍如何在MySQL中为空行设置默认值。

阅读更多:MySQL 教程

创建表格

首先,我们创建一个students表,其中包含三个字段:id、name和age。其中,id字段为自增长,name和age字段允许为空。

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

设置默认值

我们希望,当插入数据时,若age字段为空,则默认为20。我们需要修改students表的定义。

ALTER TABLE `students` MODIFY COLUMN `age` int(11) DEFAULT 20;

上述语句会将age字段的默认值设为20。当插入数据时,若未指定age字段的值,则会自动将其设为20。

现在,我们向students表中插入一些数据来验证一下:

INSERT INTO `students` (`name`) VALUES('张三');

上述语句向students表中插入了一条数据,其中age字段未指定,但是它的值被自动设为了20。

修改默认值

如果我们想修改age字段的默认值,只需要再次使用ALTER TABLE语句即可。

ALTER TABLE `students` MODIFY COLUMN `age` int(11) DEFAULT 18;

上述语句将age字段的默认值改为了18。

删除默认值

如果我们想将age字段的默认值删除,可以使用如下语句:

ALTER TABLE `students` MODIFY COLUMN `age` int(11) DEFAULT NULL;

上述语句将age字段的默认值删除,当插入数据时,若未指定age字段的值,则会将其设为NULL。

结论

MySQL中为字段设置默认值是一项重要的设计,使得我们可以更加严格地控制数据的合法性。当我们需要为某些字段设置默认值时,只需要在定义表格时指定即可,非常方便。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程