MySQL 基础学习(2): INSERT 操作

在这篇文章中,我们将专注于 MySQL 中的 INSERT 操作,深入了解如何高效地向表中插入数据,并探索插入操作中的一些常见错误与解决方案。

一、基础 INSERT 语法

在 MySQL 中,INSERT 操作用于向表中插入新记录,基本语法如下:

INSERT INTO 表名 VALUES (值1, 值2, ...);

例如:

INSERT INTO student VALUES (1, 'zhangsan');

这条语句会向 student 表中插入一条记录,其中 id1namezhangsan

注意事项

  1. 插入的数据个数和顺序必须与表结构完全匹配。
  2. 字符串类型的数据需要用单引号包裹,例如 'zhangsan'
  3. 如果插入的数据类型不匹配,会导致错误,例如将字符串插入整型字段:
INSERT INTO student VALUES ('lisi');
-- 错误:将字符串插入整型字段会失败。

解决方法:确保插入的数据类型与表结构一致。


二、指定列插入

有时我们不需要为所有列都插入数据,可以通过指定列名来插入:

INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

例如:

INSERT INTO student (name, id) VALUES ('王五', 3);

这条语句只为 nameid 列插入数据,其他列会填充默认值(如 NULL)。


三、一次插入多行

为了提高插入效率,可以一次插入多条记录:

INSERT INTO 表名 VALUES
(值1, 值2, ...),
(值3, 值4, ...),
(值5, 值6, ...);

例如:

INSERT INTO student VALUES
(2, 'lisi'),
(3, 'wangwu'),
(4, 'zhaoliu');

这种方式可以减少客户端与服务器的交互次数,从而提高性能。

性能对比

  • 单行插入:每次插入一条记录,适合小规模数据操作。
  • 多行插入:一次性插入多条记录,适合批量操作,可以显著减少网络延迟。

四、插入 NULL 值

在 MySQL 中,如果某些字段没有数据,可以插入 NULL 值,表示该字段为空。例如:

INSERT INTO student (id, name) VALUES (5, NULL);

这条语句会将 id 设置为 5name 设置为 NULL

注意事项

  • 确保表中的字段允许存储 NULL 值。
  • 对于不允许为空的字段(如设置了 NOT NULL 约束),插入 NULL 会导致错误。

五、插入日期和时间

在需要插入日期或时间数据时,可以使用字符串或 MySQL 提供的内置函数。例如:

手动插入日期

INSERT INTO test (time) VALUES ('2025-01-25 15:30:00');

使用 NOW() 函数

INSERT INTO test (time) VALUES (NOW());

上述语句会将当前系统时间插入 time 字段。


六、常见错误与解决办法

1. 列数不匹配

INSERT INTO student VALUES ('zhangsan');
-- 错误:插入的数据列数与表的字段数不匹配。

解决方法:确保插入的值与表结构的列数一致,或者显式指定列名。

2. 数据类型错误

INSERT INTO student VALUES ('lisi');
-- 错误:将字符串插入整型字段。

解决方法:检查数据类型,确保插入数据与字段类型一致。

3. 重复主键

INSERT INTO student VALUES (1, 'zhangsan');
-- 错误:主键重复。

解决方法:确保主键的唯一性,或在插入前检查是否已有相同主键值。


七、总结

MySQL 中的 INSERT 操作是数据写入的重要手段。在实际使用中,合理利用批量插入、指定列插入等技巧,不仅可以提高效率,还能避免常见错误。希望本文对你理解 INSERT 操作有所帮助,欢迎在评论区分享你的经验!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/67203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2023-38831 漏洞复现:win10 压缩包挂马攻击剖析

目录 前言 漏洞介绍 漏洞原理 产生条件 影响范围 防御措施 复现步骤 环境准备 具体操作 前言 在网络安全这片没有硝烟的战场上,新型漏洞如同隐匿的暗箭,时刻威胁着我们的数字生活。其中,CVE - 2023 - 38831 这个关联 Win10 压缩包挂…

论文阅读(二):理解概率图模型的两个要点:关于推理和学习的知识

1.论文链接:Essentials to Understand Probabilistic Graphical Models: A Tutorial about Inference and Learning 摘要: 本章的目的是为没有概率图形模型背景或没有深入背景的科学家提供一个高级教程。对于更熟悉这些模型的读者,本章将作为…

记录 | 基于Docker Desktop的MaxKB安装

目录 前言一、MaxKBStep 1Step2 二、运行MaxKB更新时间 前言 参考文章:如何利用智谱全模态免费模型,生成大家都喜欢的图、文、视并茂的文章! MaxKB的Github下载地址 参考视频:【2025最新MaxKB教程】10分钟学会一键部署本地私人专属…

Go反射指南

概念: 官方对此有个非常简明的介绍,两句话耐人寻味: 反射提供一种让程序检查自身结构的能力反射是困惑的源泉 第1条,再精确点的描述是“反射是一种检查interface变量的底层类型和值的机制”。 第2条,很有喜感的自嘲…

第26篇 基于ARM A9处理器用C语言实现中断<二>

Q:基于ARM A9处理器怎样编写C语言工程,使用按键中断将数字显示在七段数码管上呢? A:基本原理:主程序需要首先调用子程序set_A9_IRQ_stack()初始化IRQ模式的ARM A9堆栈指针;然后主程序调用子程序config_GIC…

基于GS(Gaussian Splatting)的机器人Sim2Real2Sim仿真平台

项目地址:RoboGSim 背景简介 已有的数据采集方法中,遥操作(下左)是数据质量高,但采集成本高、效率低下;传统仿真流程成本低(下右),但真实度(如纹理、物理&…

「 机器人 」利用冲程对称性调节实现仿生飞行器姿态与方向控制

前言 在仿生扑翼飞行器中,通过改变冲程对称性这一技术手段,可以在上冲与下冲两个阶段引入不对称性,进而产生额外的力或力矩,用于实现俯仰或其他姿态方向的控制。以下从原理、在仿生飞行器中的应用和典型实验示例等方面进行梳理与阐述。 1. 冲程对称性原理 1.1 概念:上冲与…

MongoDB部署模式

目录 单节点模式(Standalone) 副本集模式(Replica Set) 分片集群模式(Sharded Cluster) MongoDB有多种部署模式,可以根据业务需求选择适合的架构和部署方式。 单节点模式(Standa…

微服务搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的,现在重新搭建一个2.0版本的,学如逆水行舟,不进则退,废话不多说,开搞 1、 nacos2.x搭建 1,首先第一步查询下项目之间的版本对照,不然后期会…

react-native网络调试工具Reactotron保姆级教程

在React Native开发过程中,调试和性能优化是至关重要的环节。今天,就来给大家分享一个非常强大的工具——Reactotron,它就像是一个贴心的助手,能帮助我们更轻松地追踪问题、优化性能。下面就是一份保姆级教程哦! 一、…

npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported

vue 启动项目时,npm run serve 报下面的错: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at FSReqCallback.readFileAfterClose [as on…

改进候鸟优化算法之三:引入自适应策略的候鸟优化算法(AS-MBO)

引入自适应策略的候鸟优化算法(Migrating Birds Optimization with Adaptive Strategy,简称AS-MBO)是对传统候鸟优化算法(Migrating Birds Optimization,MBO)的一种改进。MBO算法本身是一种基于群体智能的元启发式优化算法,其灵感来源于候鸟迁徙时的“V”字形飞行队列,…

02-机器学习-核心概念

以下是机器学习核心概念的详细梳理。 1. 机器学习三大范式 类型定义典型应用监督学习使用带标签的数据训练模型,预测未知数据的标签。分类(邮件垃圾过滤)、回归(房价预测)无监督学习从无标签的数据中发现隐藏模式或结…

Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)

redis实现查询缓存的业务逻辑 service层实现 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 现查询redis内有没有数据String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的数…

算法-加油站问题

hello 大家好!今天开写一个新章节,每一天一道算法题。让我们一起来学习算法思维吧! function canCompleteCircuit(gas, cost) {// 加油站的总数const n gas.length;// 记录总剩余油量,若总剩余油量小于 0,说明无法绕环…

讯飞绘镜(ai生成视频)技术浅析(二):大模型

1.讯飞星火大模型的基础架构 2.自然语言处理(NLP)技术的具体实现 3.脚本生成的具体过程与模型公式 4.分镜生成的具体过程与模型公式 5.视频生成与编辑的技术细节 6.关键技术公式的详细推导与解释 一、讯飞星火大模型的基础架构 讯飞星火大模型是基于Transformer架构的深…

【机器学习】深入探索SVM:支持向量机的原理与应用

目录 🍔 SVM引入 1.1什么是SVM? 1.2支持向量机分类 1.3 线性可分、线性和非线性的区分 🍔 小结 学习目标 知道SVM的概念 🍔 SVM引入 1.1什么是SVM? 看一个故事,故事是这样子的: 在很久以前的情人节&#xf…

pycharm 运行远程环境问题 Error:Failed to prepare environment.

问题排查 拿到更详细的报错信息: Help > Diagnostic Tools > Debug Log Settings section: 添加下面的配置 com.intellij.execution.configurations.GeneralCommandLine 重显报错,我这里是再次运行代码打开 Help | Collect Logs and Diagnosti…

一组开源、免费、Metro风格的 WPF UI 控件库

前言 今天大姚给大家分享一个开源、免费、Metro风格的 WPF UI 控件库:MahApps.Metro。 项目介绍 MahApps.Metro 是一个开源、免费、Metro风格的 WPF UI 控件库,提供了现代化、平滑和美观的控件和样式,帮助开发人员轻松创建具有现代感的 Win…

读写和解析简单的 nc 文件

NetCDF 文件格式在气象数据工程领域占据着举足轻重的地位,其结构灵活、强兼容性等优势使其成为该领域的一个标准。无论是从事学术研究还是工程实践,掌握这种数据格式变得越发重要。其次,我注意到目前社区中气象编程大多数课程都聚焦于某个特定…