【Mysql数据库系列】Mysql将CSV格式文件内数据导入数据库,奇思妙想,出奇制胜

本文主要是介绍【Mysql数据库系列】Mysql将CSV格式文件内数据导入数据库,奇思妙想,出奇制胜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

热门系列:


目录

1、前言

2、正题

2.1 使用命令将CSV文件导入数据库

2.2 遇到的问题

2.2.1 问题一:乱码

2.2.2 问题二:导入时因数据特殊值原因报错

2.3 换个姿势导入数据库

3、总结


1、前言

前段时间,因需求需要,从外部得到一份CSV格式的股票信息文件,需要导入到内部数据库。在定义好格式和数据表之后,便开整了。

一开始心想,通过数据库可视化界面(我用的是dbeaver,挺好用,推荐大家试试),一键梭哈,完事~~~!但是,转念一想,上线时候咋整,还不是得命令操作!所以,还是老实用命令处理吧!


2、正题

2.1 使用命令将CSV文件导入数据库

这里你说明一点,数据库表和导入文件的字段,需要对应上,否则导入数据可能会错乱!!!

以下是导入命令:

LOAD DATA INFILE 'D:\Java\\WorkFile\\prodFile\\source.csv' INTO TABLE table_name
CHARACTER SET utf8 
fields terminated by "," enclosed by ""
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(column1,column2,column3,column4,column5);

命令注释:

  • table_name:是被导入的数据库表名
  • column:字段名
  • CHARACTER SET utf8: 是设置导入的数据字符按utf8格式(否则可能出现乱码)
  • FIELDS TERMINATED BY ',':指定字段分隔符
  • OPTIONALLY ENCLOSED BY '"':认为双引号中的是一个独立的字段。Excel 转 CSV 时,有特殊字符(逗号、顿号等)的字段,会自动用双引号引起来
  • LINES TERMINATED BY '\n':指定行分隔符,注意,在 Windows 平台上创建的文件,分隔符是 '\r\n'

顺带说下连接数据库的命令吧,如下:

我是win10环境,先进入自己本地mysql的安装路径下,进入bin目录,在地址栏输入cmd,打开命令终端,如下:

然后输入一下命令:

mysql -h ip地址 -u mysql账号名 -p 

然后输入密码,即可登录连接上自己的数据库了~~~~!如此选择指定数据库后,就可以输入上述命令进行导入了~~

不出意外的话,就可以顺利导入啦。。。

 

2.2 遇到的问题

2.2.1 问题一:乱码

但是,天将降大任于斯人也,必先劳其筋骨,饿其体肤。。。。。所以,我导入失败了~~~ 乱码了,我丢!!!!

尝试了很多办法,不得其解。后来没办法,我想换一种方式解决~

就是用自己本地的数据库,使用dbeaver界面导入功能先把数据导入,然后再导出sql脚本。。后续上线或是其他环境的数据库,直接使用sql脚本,就应该没问题了。。。

2.2.2 问题二:导入时因数据特殊值原因报错

现在使用dbeaver导入功能导入:

然鹅,,,另一个问题出现了。。TMD导入时,因为不明数据,导致导入报错。并且通过CSV文件,我筛查了很久·,去掉了所有标点符号,奇异字符。也是不行~~~

看了dbeaver的报错日志:但是显示的列是按十六进制显示的,并且显示不全。。。就很蛋疼~~~~

头皮发麻_头皮发麻表情

 

2.3 换个姿势导入数据库

没办法,终极大招 ~~~,上才艺!

后来痛定思痛,我们的目标是将数据导入进去,什么方式,不重要!所以,我们不能局限在传统的导入方式上,换个姿势,我们是否可以把CSV内的数据,手动格式化成SQL脚本呢。这样不就可以导入了吗?

于是,抠出CSV内的数据,放在文本中,使用CTRL+H,然后使用替换大法哈哈,这样sql脚本就成啦~~

剩下导入的过程,我就不再赘述啦。。。大功告成!!!


3、总结

我觉得开发过程中,想法很重要!!!别人都说程序员,思想容易固化,所以:

1、解决问题的过程中,多想几种解决方式,不要执着于一种方式

2、思考问题的时候,尽量全局性去想,不要顾头不顾尾

最后,有感兴趣的朋友,欢迎在下方留言讨论,点赞关注哈~~~~~

这篇关于【Mysql数据库系列】Mysql将CSV格式文件内数据导入数据库,奇思妙想,出奇制胜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/272673

相关文章

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3