MySQL如何添加数据insert命令

 更新时间:2023年11月06日 14:38:24   作者:辰风沐阳  
这篇文章主要介绍了MySQL如何添加数据insert命令问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. insert 语法格式

完整格式

insert [into] 表名[字段名1[, 字段名2]] value[s](值1, 值2),(值3, 值4);

省略字段名

省略字段名时,必须依次添加所有段的值

insert [into] 表名 value(值1, 值2[, ...]);

只添加一条数据时,也可以使用 insert ... set 命令

此方式无法插入空值 null

insert into 表名 set 字段名1=值[,字段名2=值];

2. 使用示例

a. 省略字段名

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
  `nickname` varchar(60) DEFAULT NULL COMMENT '用户昵称',
  `gender` tinyint(1) DEFAULT NULL COMMENT '性别',
  `age` mediumint(9) DEFAULT NULL COMMENT '年龄',
  `status` tinyint(1) DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

特别注意:因为字段id会自动增长,设置为null即可

如果没有写出所有字段的值,会出现以下错误

1136 - Column count doesn’t match value count at row 1(列计数与行的值计数不匹配)

insert into user value(null, '张三', 1, 20, null, 1602295286);

b. 给指定的字段添加数据,则没有被指定的字段必须有默认值

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
  `nickname` varchar(60) NOT NULL COMMENT '用户昵称',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

没有默认值的字段必须给值:nickname 字段设置了 not null 且没有设置 default

insert into user(`status`, `create_time`) value(1, 1602295286);

c. 一次添加多条数据

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
  `nickname` varchar(60) NOT NULL COMMENT '用户昵称',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
insert into user(`nickname`, `status`) value('张大民', 1), ('小新', 0), ('小刚同学', 1);

d. 添加一条数据的两种写法

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键且自增',
  `nickname` varchar(60) NOT NULL COMMENT '用户昵称',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 0 关闭 1 开启 默认为 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注册时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
insert into user(`nickname`, `status`) value('小王', 1);
insert into user set `nickname` = '大王', `status` = '0';

3. MySQL 添加数据总结(常见用法)

不指定字段名,所有字段必须给值

insert into user value(null, '张三', '123456', '男', 20, 1602295286);

into 可以省略,但是一般都不省略

insert user value(null, '张三', '123456', '男', 20, 1602295286);

指定部分字段添加,没有被指定的字段 要么会自动增长,要么允许为 null,要么有默认值

insert into user(`nickname`, `password`, `gender`, `age`) value('张三', '123456', '男', 20);

添加一条数据时也可以用 insert ... set

insert into user set `nickname` = '大王', `status` = '0';

添加多条数据

insert into user(`nickname`, `status`) value('张大民', 1), ('小新', 0), ('小刚同学', 1);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解MySQL主从复制实战 - 基于日志点的复制

    详解MySQL主从复制实战 - 基于日志点的复制

    这篇文章主要介绍了详解MySQL主从复制实战 - 基于日志点的复制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • mysql 5.1版本修改密码及远程登录mysql数据库的方法

    mysql 5.1版本修改密码及远程登录mysql数据库的方法

    这篇文章主要介绍了mysql 5.1版本修改密码及远程登录mysql数据库的方法,需要的朋友可以参考下
    2017-04-04
  • mysql间隙锁的具体使用

    mysql间隙锁的具体使用

    MySQL中有多种锁类型,本文主要介绍了mysql间隙锁的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • mysql增加外键约束具体方法

    mysql增加外键约束具体方法

    在本篇文章里小编给大家整理的是一篇关于mysql增加外键约束具体方法及相关实例内容,有兴趣的朋友们可以跟着学习下。
    2021-12-12
  • 关于MySQL分区表的一个性能BUG

    关于MySQL分区表的一个性能BUG

    这篇文章主要给大家讲诉MySQL分区表的一个性能BUG,也就是使用分区表进行数据查询/加载的时候比普通表的性能下降了约50%,下面就来讲将对此的解决办法,需要的朋友可以参考以下内容
    2021-09-09
  • MySQL最新版8.1.0安装配置教程(图文)

    MySQL最新版8.1.0安装配置教程(图文)

    MySQL是一种广泛使用的开源数据库管理系统,MySQL 8.0是最新版本,它具有更好的性能和安全性,本文主要介绍了MySQL最新版8.1.0安装配置教程,感兴趣的可以了解一下
    2023-09-09
  • 出现错误mysql Table ''performance_schema...解决办法

    出现错误mysql Table ''performance_schema...解决办法

    这篇文章主要介绍了解决出现错误mysql Table 'performance_schema.session_variables' doesn't exist的相关资料,需要的朋友可以参考下
    2017-04-04
  • MySQL 的 21 个规范、优化最佳实践!

    MySQL 的 21 个规范、优化最佳实践!

    每一个好习惯都是一笔财富,本文分 SQL 后悔药,SQL 性能优化,SQL 规范优雅三个方向,分享写 SQL 的 21 个好习惯和最佳实践
    2020-12-12
  • 深入分析Mysql中limit的用法

    深入分析Mysql中limit的用法

    很久没用mysql的limit,一时大意竟然用错了,自认为(limit 开始,结束),其实错了,正确的应该是(limit 偏移量,条数),为了记住这次错误,转载一篇limit用法详解。推荐给大家,希望对大家能够有所帮助。
    2015-03-03
  • Mysql跨表更新 多表update sql语句总结

    Mysql跨表更新 多表update sql语句总结

    Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法,需要的朋友可以参考下
    2012-12-12

最新评论