当前位置: 首页 > news >正文

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

【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.lryc.cn/news/35773.html

相关文章:

  • Ngnix安装教程(2023.3.8)
  • 【C语言】每日刷题 —— 牛客(2)
  • 关于算法的一些简单了解
  • mysql无法启动服务及其他问题总结
  • 数据库表字段命名规范
  • 23种设计模式-命令模式(android应用场景介绍)
  • vector你得知道的知识
  • 【C++进阶】四、AVL树(二)
  • React 服务端渲染
  • 【算法设计-搜索】回溯法应用举例(1)
  • C++基础了解-23-C++ 多态
  • 【GNN/深度学习】常用的图数据集(资源包)
  • Clickhouse中bitmap介绍以及计算留存Demo
  • 大数据是什么?学习后能找高薪工作么
  • 如何提取视频中的音频转文字?分享提效减负视频转文字方法
  • 脑机接口科普0018——前额叶切除手术
  • FPGA工程师面试——基础知识
  • 全国青少年软件编程(Scratch)等级考试一级真题——2019.12
  • 【Integrated Electronics系列——数字电子技术基础】
  • 【微信小程序】-- 页面处理总结(三十一)
  • Spring Batch使用详细例子
  • 漏洞预警|Apache Dubbo 存在反序列化漏洞
  • Tomcat源码分析-spring boot集成tomcat
  • 一个古老的html后台的模板代码
  • 支持向量回归删除异常值Python
  • 手把手开发一门程序语言JimLang (2)
  • DSF深度搜索时到底是如何回溯的(小tip)
  • Rust Web入门(八):打包发布
  • synchronize优化偏向锁
  • 算法习题之动态规划