MySQL如何插入信息和批量导入数据

来源:3D模型作者:下班再修头衔:程序员
导读:本期聚焦于小伙伴创作的《MySQL如何插入信息和批量导入数据》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《MySQL如何插入信息和批量导入数据》有用,将其分享出去将是对创作者最好的鼓励。

MySQL作为常用的关系型数据库,数据插入是最基础的操作之一,掌握单条插入和批量导入的方法能大幅提升数据处理的效率。不管是新增单条用户记录,还是需要导入上万条业务数据,都有对应的合适方案。

MySQL如何插入信息和批量导入数据

单条数据插入操作

MySQL中最基础的插入语句是INSERT INTO,标准语法有两种常见形式,第一种是指定所有字段并对应赋值:

-- 向user表插入一条完整记录,字段顺序和表结构一致
INSERT INTO user VALUES (1, '张三', 25, 'zhangsan@ipipp.com');

第二种是指定需要插入的字段,未指定的字段如果有默认值会使用默认值,没有默认值且非空则会报错:

-- 只插入user表的id、name、age字段,email字段使用默认值
INSERT INTO user (id, name, age) VALUES (2, '李四', 28);

如果插入的数据和表中已有主键或唯一索引冲突,可以使用INSERT IGNORE忽略冲突,或者使用ON DUPLICATE KEY UPDATE更新已有记录:

-- 主键冲突时更新age字段
INSERT INTO user (id, name, age) VALUES (1, '张三', 26)
ON DUPLICATE KEY UPDATE age = 26;

批量插入数据方法

当需要插入多条数据时,逐条执行单条插入语句效率很低,MySQL支持在一条INSERT语句中插入多条记录,语法如下:

-- 一次插入3条用户记录
INSERT INTO user (id, name, age) VALUES
(3, '王五', 22),
(4, '赵六', 30),
(5, '孙七', 27);

这种方式的插入效率远高于逐条执行,适合少量到中量级的批量数据插入场景。如果是通过应用程序操作,还可以使用预处理语句批量绑定参数插入,以Python的pymysql为例:

import pymysql

# 连接数据库
conn = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='test')
cursor = conn.cursor()

# 待插入的数据列表
user_list = [
    (6, '周八', 24),
    (7, '吴九', 29),
    (8, '郑十', 31)
]

# 执行批量插入
sql = "INSERT INTO user (id, name, age) VALUES (%s, %s, %s)"
cursor.executemany(sql, user_list)
conn.commit()
cursor.close()
conn.close()

从外部文件批量导入数据

如果需要导入的数据量非常大,比如几十万甚至上百万条,使用INSERT语句效率会明显下降,此时推荐使用LOAD DATA语句,它可以直接读取外部文件快速导入数据。

首先准备一个符合表结构的文本文件,比如user_data.txt,内容格式如下,字段之间用逗号分隔,行之间用换行分隔:

9,钱十一,25
10,刘十二,32
11,陈十三,23

然后执行导入语句:

-- 从本地文件导入数据到user表,字段分隔符为逗号,行分隔符为换行
LOAD DATA LOCAL INFILE '/path/to/user_data.txt'
INTO TABLE user
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
(id, name, age);

如果文件中有表头行,可以添加IGNORE 1 ROWS忽略第一行:

LOAD DATA LOCAL INFILE '/path/to/user_data.txt'
INTO TABLE user
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 ROWS
(id, name, age);

插入操作注意事项

  • 插入数据时要确保字段类型和值匹配,比如数值字段不能插入字符串,否则会报错。
  • 批量插入时单条语句的数据量不宜过大,建议每次插入1000到5000条,避免超过数据库的最大包大小限制。
  • 使用LOAD DATA导入前要确保数据库用户有对应的文件读取权限,同时文件路径要正确。
  • 插入大量数据前可以暂时关闭表的索引,插入完成后再重新开启,能提升导入效率。
注意:如果插入的数据包含特殊字符比如单引号,需要在插入值中对单引号进行转义,比如插入名字为O'Neil的用户,值要写成'O'Neil'。

MySQLINSERT批量插入LOAD_DATA数据导入修改时间:2026-07-24 14:09:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。