MySQL - LOAD DATA LOCAL INFILE将数据导入表中

在这里插入图片描述

一.语法介绍

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT},
        [, col_name={expr | DEFAULT}] ...]

LOAD DATA语句以非常高的速度将文本文件中的行读入表中。 LOAD DATA是补充 SELECT ... INTO OUTFILE。要将表中的数据写入文件,请使用 SELECT ... INTO OUTFILE。要将文件读回表中,请使用 LOAD DATA。两个语句的FIELDSLINES子句的语法 相同。

更多的相关内容,大家可以参照官网

二.数据分隔符

  1. fields关键字指定了文件记段的分割格式,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项:
    terminated by 以什么字符作为分隔符
    enclosed by 字段闭合标签
    escaped by 转义字符
    terminated by 描述字段的分隔符,默认情况下是tab字符(\t)
    enclosed by 描述的是字段的括起字符。
    escaped by 描述的转义字符。默认的是反斜杠(backslash:\ )
  2. lines 关键字指定了每条记录的分隔符默认为’\n’即为换行符 (不指定一个lines子句,缺省值默认写的如: lines terminated by’\n’)
  3. [IGNORE number LINES] 忽略特定行数,CSV文件可以忽略掉第一行标题

三.实战

示例1:LOAD DATA LOCAL INFILE导入txt文件
1.1数据准备

首先我们创建一个milo.xlsx文件,准备数据如下图:

[外链图片转存失败(img-3pkTejXz-1562986847266)(C:\Users\Administrator\Documents\博客\images\20190621\图1.png)]

然后新建milo.txt文件,将数据复制过去;

在这里插入图片描述

接下来,我们需要在自己本地库创建对应的数据表

在这里插入图片描述

**注意:**需要注意表字段需要对应数据中的id和name;

1.2 数据导入
load data local infile 'F:\\milo.txt'
into table test
fields terminated by '\t'
lines terminated by '\n'
ignore 1 lines
(id,name);
1.3结果

在这里插入图片描述

示例2:LOAD DATA LOCAL INFILE导入csv文件
2.1数据准备

首先我们创建milo.csv文件,如下图所示

在这里插入图片描述

2.2数据导入
LOAD DATA LOCAL INFILE 'F:\\milo.csv' INTO TABLE test
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id, name)
2.3结果

在这里插入图片描述

三.相关问题

在测试过程中,大家可能会遇到各种问题,可以参考这篇博客解决:https://blog.csdn.net/ShoneX98/article/details/85230721

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值