开发者

MySQL将CSV文件快速导入MySQL中的实现

开发者 https://www.devze.com 2023-11-20 09:14 出处:网络 作者: 何为xl
目录方法一:使用navicat等软件的导入向导如果出现中文乱码方法二:命令行导入(LOAD DATA INFILE SQL)一般来说,将csv文件导入mysql数据库有两种办法:
目录
  • 方法一:使用navicat等软件的导入向导
    • 如果出现中文乱码
  • 方法二:命令行导入(LOAD DATA INFILE SQL)

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

    • 使用 navicat、workbench 等软件中的导入向导手动导入;
    • 使用 load data infile 命令导入

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

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

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

    成功连接后如下图:

    MySQL将CSV文件快速导入MySQL中的实现

    创建数据库

    MySQL将CSV文件快速导入MySQL中的实现

    点击“方向导入”

    MySQL将CSV文件快速导入MySQL中的实现

    选择需要导入的文件类型python

    MySQL将CSV文件快速导入MySQL中的实现

    选择需要导入文件的路径

    MySQL将CSV文件快速导入MySQL中的实现

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

    MySQL将CSV文件快速导入MySQL中的实现

    导入成功

    MySQL将CSV文件快速导入MySQL中的实现

    如果出现中文乱码

    解决方案:

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

    MySQL将CSV文件快速导入MySQL中的实现

    重新导入数据

    MySQL将CSV文件快速导入MySQL中的实现

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

    MySQL将CSV文件快速导入MySQL中的实现

    方法二:命令行导入(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
    );
    

    两个建议:

    • 建议所有的字段都接纳 NULL 值,并且表没有主键,因为事先并不知道 CSV 文件中的数据是否完整和规范。
    • 即使是数字数据,也只使用 VARCHAR 字段,以防止文件中的数据格式不正确而导致处理错误。导入数据后,可以直接在数据库中进行清理,读取表的数,并进行必要的验证和修正。

    使用如下命令查看是否允许从外部路径导入文件

    show variables like '%secure%';

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

    使用如下命令查看是否允许本地导入

    show vwww.devze.comariables like 'local_infile';

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

    set global local_infile=on;

    导入文件

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

    load data local infile 'file_path' # 文件路径
    LsvAXinto 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

    到此这篇关于MySQL将CSV文件快速导入MySQL中的实现的文章就介绍到这了,更多相关MySQL CSV导入MySQL内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号