【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

相关文章

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库