【MySQL】将 CSV文件快速导入 MySQL 中

news/2025/1/16 2:59:31/

【MySQL】将 CSV文件快速导入 MySQL 中

  • 方法一:使用navicat等软件的导入向导
    • 如果出现中文乱码
  • 方法二:命令行导入(LOAD DATA INFILE SQL)

一般来说,将csv文件导入mysql数据库有两种办法:

  1. 使用 navicat、workbench 等软件中的导入向导手动导入;

  2. 使用 load data infile 命令导入

    前者速度较慢,适合数据量比较小的时候,而对于大文件,我们需要使用命令行导入。

方法一:使用navicat等软件的导入向导

  1. 打开安装好的Navicat Premium,连接数据库。

成功连接后如下图:
在这里插入图片描述

  1. 创建数据库

在这里插入图片描述

  1. 点击“方向导入”

在这里插入图片描述

  1. 选择需要导入的文件类型

在这里插入图片描述

  1. 选择需要导入文件的路径

在这里插入图片描述

  1. 查看导入的表结构是否正确

在这里插入图片描述

  1. 导入成功

在这里插入图片描述

如果出现中文乱码

解决方案:

  • 将原来存储在桌面上的 OrderData 文件通过 Notepad++ 进行转码,格式为 UTF-8 点击OrderDaTa.csv, 右键用 Notepad++ 打开,修改编码。

在这里插入图片描述

  • 重新导入数据

在这里插入图片描述

  • 点击开始按钮,数据导入中…

在这里插入图片描述

方法二:命令行导入(LOAD DATA INFILE SQL)

准备工作

  • 在mysql中将表结构先建好,包括字段名及类型等

假设你的 CSV 文件包含图书信息,分为 ISBN、Title、Author 和 ListPrice 字段。要创建这样一个表,你需要执行这样的命令。

CREATE TABLE BooksCSV (ISBN VARCHAR(255) NULL,title VARCHAR(255) NULL,author VARCHAR(255) NULL,ListPrice VARCHAR(255) NULL
);

两个建议:

  1. 建议所有的字段都接纳 NULL 值,并且表没有主键,因为事先并不知道 CSV 文件中的数据是否完整和规范。

  2. 即使是数字数据,也只使用 VARCHAR 字段,以防止文件中的数据格式不正确而导致处理错误。导入数据后,可以直接在数据库中进行清理,读取表的数,并进行必要的验证和修正。

  • 使用如下命令查看是否允许从外部路径导入文件
show variables like '%secure%';

如果结果显示secure_file_priv=‘’,即空字符串,则无需改动;如果secure_file_priv=null,则需要在mysql的配置文件my.ini中添加如下行secure_file_priv=‘’,之后重启mysql服务。

  • 使用如下命令查看是否允许本地导入
show variables like 'local_infile';

如果结果是off,则改使用如下命令改为on

set global local_infile=on;
  • 导入文件

使用如下命令导入文件。注意:文件路径不能有中文!!

load data local infile 'file_path' # 文件路径
into table daily_price             # 表名
character set utf8                 # 编码
fields terminated by ','           # 分隔符
lines terminated by '\r\n'         # 换行符,windows下是\r\n
ignore 1 lines;                    # 忽略第一行,因为表头已建好

其他有关load data infile的细节可在此地址查询

https://www.mysqlzh.com/doc/126/255.html


http://www.ppmy.cn/news/31303.html

相关文章

mysql连接池的实现

目录 1 池化技术 2 什么是数据库连接池 3 为什么使用数据库连接池 3.1 不使用连接池 3.2 使用连接池 3.3 长连接和连接池的区别 4 数据库连接池运行机制 5 连接池和线程池的关系 6 线程池设计要点 6.1 连接池设计逻辑 构造函数 初始化 请求获取连接 归还连接 析…

Clickhouse中bitmap介绍以及计算留存Demo

前言 参考了腾迅的大数据分析-计算留存,能够根据用户自定义属性,以及玩家行为进行留存的计算。最初计算留存的方法使用的是clickhosue自带的rentention函数,使用这个函数不用关注太多细节,只需要把留存条件放入函数即可。但是这个如果需要关联用户属性,就比较麻烦了。因此…

Pandas库:从入门到应用(一)

一、Pandas简介 pandas是 Python 的核⼼数据分析⽀持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。pandas是Python进⾏数据分析的必备⾼级⼯具。 pandas的主要数据结构是 Series(⼀维数据)与 DataFrame (⼆维数据)&am…

【剧前爆米花--爪哇岛寻宝】Java实现无头单向非循环链表和无头双向链表与相关题目

作者:困了电视剧 专栏:《数据结构--Java》 文章分布:这是关于数据结构链表的文章,包含了自己的无头单向非循环链表和无头双向链表实现简单实现,和相关题目,想对你有所帮助。 目录 无头单向非循环链表实现 …

前端面试题--JavaScript篇

一、JavaScript中的数据类型JavaScript中共有八种数据类型:Number、String、Boolean、Object、Null、Undefined、null、Symbol、BigInt 其中Symbol和BigInt是ES6新增的数据类型Symbol代表独一无二且不可改变的数据类型,主要为了解决可能出现的全局变量冲…

Hive中order by,sort by,distribute by,Cluster by

order by 对数据进行全局排序, 只有一个reducer Task, 效率低 mysql中strict模式下, order by必须要有limit, 不然会拒绝执行. 对于分区表, 必须显示指定分区字段查询。 sort by 可以有多个reduce Task(以distribute by后的字段个数为准) 每个reduce Task内部数据有序, 但…

脑机接口科普0018——前额叶切除手术

本文禁止转载!!! 首先说明一下,前额叶切除手术,现在已经不允许做了。 其次,前额叶切除手术,发明这个手术的人居然还获得了诺贝尔奖。太过于讽刺。1949年的那次诺贝尔医学奖(就是我…

载荷台子使用方式

载荷自动测量台子使用方法 电源开关旋转到1,开启电源开启台子微机开关,开启电脑(winxp)开启台子载荷开关,启动载荷台子点击电脑动标图标,开启软件放入载荷,弹性体向上,载荷台子压头压…