精华内容
下载资源
问答
  • 31 回答导入操作存在特殊字符情况的处理Book1.csv编号,名称,说明1,测试数据1,"测试CSV文件中,有逗号"2,测试数据2,"测试CSV文件中有""双引号"""3,测试数据3,"测试CSV文件中,有逗号和""双引号"""4,测试数据4,普通数据...

    匿名用户

    1级

    2017-01-31 回答

    导入操作

    存在特殊字符情况的处理

    Book1.csv

    编号,名称,说明1,测试数据1,"测试CSV文件中,有逗号"2,测试数据2,"测试CSV文件中有""双引号"""3,测试数据3,"测试CSV文件中,有逗号和""双引号"""4,测试数据4,普通数据

    mysql> CREATE TABLE Test_Book1 (

    -> id int,

    -> name VARCHAR(10),

    -> data VARCHAR(100)

    -> );

    Query OK, 0 rows affected (0.05 sec)

    下面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行

    下面的 ignore 1 lines是 忽略第一行的标题行。

    mysql> LOAD DATA INFILE 'f:/Book1.csv'

    -> INTO TABLE Test_Book1

    -> FIELDS TERMINATED BY ','

    -> OPTIONALLY ENCLOSED BY '"'

    -> lines terminated by '\r\n'

    -> ignore 1 lines

    -> (id, name, data);

    Query OK, 4 rows affected (0.00 sec)

    Records: 4 Deleted: 0 Skipped: 0 Warnings: 0

    mysql> select * from test_book1;

    +------+-----------+--------------------------------+

    | id | name | data |

    +------+-----------+--------------------------------+

    | 1 | 测试数据1 | 测试CSV文件中,有逗号 |

    | 2 | 测试数据2 | 测试CSV文件中有"双引号" |

    | 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |

    | 4 | 测试数据4 | 普通数据 |

    +------+-----------+--------------------------------+

    4 rows in set (0.00 sec)

    展开全文
  • 本文将详细介绍MySQL如何导入csv格式数据文件并提供详细解决方案,需要了解的朋友可以参考下
  • 1.导入csv文件使用如下命令:1.mysql>loaddatainfile"yourcsvfilepath"intotable[tablename]fieldsterminatedby','上面的csv文件以','逗号作为分割符,需要用双引号或者单引号括起来。如果是以'\t'制表符作为分隔...

    1.导入csv文件

    使用如下命令:1.mysql> load data infile "your csv file path" into table [tablename] fields terminated by ','

    上面的csv文件以','逗号作为分割符,需要用双引号或者单引号括起来。如果是以'\t'制表符作为分隔符的话,可不用显示指明域分割符。

    还有一点需要注意,csv文件或者文本文件的路径要使用绝对路径,否则mysql会默认从数据库存储的目录寻找,找不到就会报如下错误:ERROR 13 (HY000) at line 1: Can't get stat of '/var/lib/mysql/PromotionGroup/attempt_1467708933142_34285938_m_000000_0.1469434545564' (Errcode: 2)

    查看一下错误码代表的意思:OS error code 2: No such file or directory。意思就是没有指定的文件或者目录。

    如果使用绝对路径之后还是会报如下错误:ERROR 13 (HY000) at line 1: Can't get stat of '/fullpath/file.csv' (Errcode: 13)

    使用命令perror 13查看错误类型:OS error code 13: Permission denied。根据错误的提示,顺其自然的检查文件是否有可读权限,结果是有的,于是各种百度都没有得到正确的答案,百思不得其解,最终选择google在stackoverflow找到了我想要的答案。Try to use LOAD DATA LOCAL INFILE instead of LOAD DATA INFILE.

    使用LOAD DATA LOCAL INFILE尝试一下,结果真的可以了!

    load data local infile与load data infile的区别是什么呢?

    使用LOCAL关键词,从客户主机读文件。不使用LOCAL,从服务器读取文件。

    很奇怪的是,我的文件是在服务器上的,但是不使用local就会出错,真搞不明白!

    2.导入文件

    无需指定分割符。直接使用下面的命令:mysql> load data infile "your excel file path" into table [tablename]

    注意上面导入文件时,都需要提前建立好与文件内各个段对应好的数据表。并且文件的路径需要使用引号括起来,双引号和单引号都可以。

    3.导入sql文件

    无需提前建立好数据表,直接使用source命令:source /home/abc/abc.sql;

    sql脚本无需双引号括起来。本质上使用source执行外部sql脚本,sql脚本会将sql脚本中附带的数据导入到创建的数据表中。

    41a92cc0234125bfb606ff298d70592f.png

    展开全文
  • 本教程展示如何用LOAD DATA INFILE 将 CSV 文件导入MySQL表中。LOAD DATA INFILE 语句可以读取文本文件并导入数据库中。在导入文件之前,你需要做如下准备:导入文件的目标数据库csv文件的列与目标数据库表的列的...

    本教程展示如何用LOAD DATA INFILE 将 CSV 文件导入MySQL表中。

    LOAD DATA INFILE 语句可以读取文本文件并导入数据库中。

    在导入文件之前,你需要做如下准备:导入文件的目标数据库

    csv文件的列与目标数据库表的列的数量相同,并且每列的数据类型相同。

    有插入数据权限的账户.

    假设我们有数据表,命名位discounts有如下结构:

    文件discounts.csv文件包含第一行作为列名,其他行作为数据,如下图:

    用以下语句来完成导入功能,例: c:\tmp\discounts.csv文件discounts表中;

    LOAD DATA INFILE 'c:/tmp/discounts.csv'

    INTO TABLE discounts

    FIELDS TERMINATED BY ',' #分隔符

    ENCLOSED BY '"' #结尾符

    LINES TERMINATED BY '\n' #换行

    IGNORE 1 ROWS; #忽略csv文件的第一行文件。

    csv文件中,每列用逗号来分隔',' 用双引号'" ‘作为数据全文的结尾符。.

    所有的 CSV 文件都是用 '\n' 换行。.

    因为文件第一行包含列名,所以,不应该导入数据表中,这里用 IGNORE 1 ROWS option.语句忽略第一行,保证不导入。

    现在,我们可查看 discounts 表 看数据是否导入。

    SELECT * FROM discounts;

    导入数据过程中变更数据格式:

    有时候,我们要导入的数据不符合目标数据的格式,简单的解决方式,你可以在导入数据过程中用set语句改变导入数据的格式;

    expired date 数据是 mm/dd/yyyy 格式如下:

    在导入过程中用str_to_date()函数来解决这个问题:

    LOAD DATA INFILE 'c:/tmp/discounts_2.csv'

    INTO TABLE discounts

    FIELDS TERMINATED BY ',' ENCLOSED BY '"'

    LINES TERMINATED BY '\n'

    IGNORE 1 ROWS

    (title,@expired_date,amount)

    SET expired_date = STR_TO_DATE(@expired_date, '%m/%d/%Y');

    远程客户端导入数据

    在本地电脑导入数据到远端的服务器,同样用LOAD DATA INFILE语句

    当加入 LOCAL 参数在 LOAD DATA INFILE语句中 , 客户端会自动读取本地文件,然后将读取的数据发送到服务器端,文件会上传到服务器,临时文件在, C:\windows\temp on Windows 或 /tmp on Linux. 此文件不可配置或变更(新版本解除限制)

    举例:

    LOAD DATA LOCAL INFILE 'c:/tmp/discounts.csv'

    INTO TABLE discounts

    FIELDS TERMINATED BY ','

    ENCLOSED BY '"'

    LINES TERMINATED BY '\n'

    IGNORE 1 ROWS;

    唯一一点不同就是用 LOCAL 参数,如果上传较大的文件,可能会慢一点,毕竟需要将文件上传到服务器需要时间。

    通过本地上传文件不需要服务器的特别权限,

    远程客户端上传文件有一些需要注意的地方请参考 security issues

    展开全文
  • 我创建了一个名为“CSVImport”的表,它为CSV文件的每一列都有一个字段 . CSV包含99列,因此这本身就是一项非常艰巨的任务:CREATE TABLE 'CSVImport' (id INT);ALTER TABLE CSVImport ADD COLUMN Title ...

    我有一个来自客户端的非标准化事件日记CSV,我正在尝试将其加载到MySQL表中,以便我可以重构为一种理智的格式 . 我创建了一个名为“CSVImport”的表,它为CSV文件的每一列都有一个字段 . CSV包含99列,因此这本身就是一项非常艰巨的任务:

    CREATE TABLE 'CSVImport' (id INT);

    ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);

    ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256);

    ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);

    ...

    ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);

    ALTER TABLE CSVImport Date50 ADD COLUMN Date50 VARCHAR(256);

    表中没有约束,并且所有字段都包含VARCHAR(256)值,但包含计数(由INT表示),是/否(由BIT表示),价格(由DECIMAL表示)和文本blurbs(由TEXT代表) .

    我试图将数据加载到文件中:

    LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;

    Query OK, 2023 rows affected, 65535 warnings (0.08 sec)

    Records: 2023 Deleted: 0 Skipped: 0 Warnings: 198256

    SELECT * FROM CSVImport;

    | NULL | NULL | NULL | NULL | NULL |

    ...

    整个表格填充 NULL .

    我认为问题是文本blurbs包含多行,而MySQL正在解析文件,好像每个新行都对应一个数据行 . 我可以毫无问题地将文件加载到OpenOffice中 .

    clientdata.csv文件包含2593行和570条记录 . 第一行包含列名称 . 我认为它是逗号分隔的,文本显然是用双引号分隔的 .

    更新:

    我在 LOAD DATA 语句中添加了一些信息,表明OpenOffice足够智能推断,现在它加载了正确数量的记录:

    LOAD DATA INFILE "/home/paul/clientdata.csv"

    INTO TABLE CSVImport

    COLUMNS TERMINATED BY ','

    OPTIONALLY ENCLOSED BY '"'

    ESCAPED BY '"'

    LINES TERMINATED BY '\n'

    IGNORE 1 LINES;

    但仍然有很多完整的 NULL 记录,并且没有任何加载的数据似乎在正确的位置 .

    展开全文
  • MYSQL LOAD DATA INFILE命令可以把csv平面文件中的数据导入到数据库中。linux下:LOAD DATA INFILE '/home/test/dump/ip_location.csv'INTO TABLE ip_locationCHARACTER SET utf8FIELDS TERMINATED BY ',' ENCLOSED ...
  • 导入 CSV 文件到 MySQL Table本教程介绍如何使用LOAD DATA INFILE语句将CSV文件导入MySQL表。LOAD DATA INFILE语句允许您从文本文件中读取数据,并将文件的数据快速导入数据库表。在导入文件之前,您需要准备以下...
  • MYSQL LOAD DATA INFILE命令可以把csv平面文件中的数据导入到数据库中。 linux下: LOAD DATA INFILE '/home/test/dump/ip_location.csv' INTO TABLE ip_location CHARACTER SET utf8 FIELDS TERMINATED BY ',' ...
  • 在将数据从.CSV文件导入MySQL表时,我们需要将FIELDS SEPARATED OPTION与LOAD DATA INFILE语句一起使用。我们正在请看以下示例以使其理解-示例以下是A.CSV文件中逗号分隔的值-105,Chum,USA,11000106,Danny,AUS,120...
  • 如何CSV文件导入MySQL表我有一个未规范化的事件-来自客户端的日记CSV,我试图将它加载到MySQL表中,以便将其重构为正常的格式。我创建了一个名为“CSVImport”的表,该表对CSV文件的每一列都有一个字段。CSV包含99...
  • 1.说明Oracle数据库导入csv文件,当csv文件较小时,可以使用数据库管理工具,比如DBevaer导入到数据库,当csv文件很大时,可以使用Oracle提供的sqlldr命令行工具,能够快速导入大量数据。在数据库之间进行数据迁移时...
  • 如何CSV文件导入MySQL表我有一个未规范化的事件-来自客户端的日记CSV,我试图将它加载到MySQL表中,以便将其重构为正常的格式。我创建了一个名为“CSVImport”的表,该表对CSV文件的每一列都有一个字段。CSV包含99...
  • 数据库是Oracle 9i1、导出csv文件这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query ...2、导入csv文件比喻数据库里有表t_province 字段1:province 字段2:cityCSV文件存放路径:f:\test.csv 列...
  • 展开全部导入操作存在特殊字符情况的处理Book1.csv编号,名称,说明1,测试数据32313133353236313431303231363533e59b9ee7ad94313333326232391,"测试CSV文件中,有逗号"2,测试数据2,"测试CSV文件中有""双引号"""3,测试...
  • MySQL如何csv文件导入mysql数据库

    万次阅读 多人点赞 2019-04-30 16:57:33
    如何csv文件导入MySQL数据库中(亲测有效) 需要准备的工具: OrderDaTa.csv文件 Navicat Premium(是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连接到MySQL,SQLite、...
  • 为了增加实战经验,我从阿里云天池上下载了淘宝的用户数据,本文就从如何导入文件开始吧。一、新建一个sckema然后点击,注意这里charset需要改成utf-8二、创建表设置列名在这个下拉框中这里我遇到报错...
  • 用Go向MySQL导入.csv文件

    千次阅读 2019-05-21 17:42:25
    今天来更新一个很少碰到,但碰到了又让人十分蛋疼的问题——Go语言中执行MySQL的load data local infile语句报local file '...情景在现:我要在Go语言中执行sql语句,往MySQL导入一个.csv文件,sql语句如下: lo...
  • Step 1 :在数据库中新建一个表,设置列名(与待导入文件一致)。 Step 2 :右键表名,导入导入使用本地加载的CSV数据: Step 3 :一定要指定转义字符,将终止设置为逗号,否则CSV所有值都会导入到第一列。 ...
  • 小编典典感谢所有为这个问题提供答案的人。我发现了解决方案!我只是想共享它,以防万一有人需要创建一个PHP脚本来将...在此示例中,我将一个包含两列(名称,contact_number)的CSV文件导入到包含相同列的MySQL数据库...
  • PHP如何实现csv文件导入数据库?本文主要介绍了PHP编程实现csv文件导入mysql数据库的方法,涉及php文件读取、转换、数据库的连接、插入等相关操作技巧,需要的朋友可以参考下。希望对大家有所帮助。具体如下:config....
  • 如何csv文件导入MySQL?将csv文件导入MySQL首先登录MySQL:mysql -u root -p123456创建数据表,保证字段和csv文件中的列一致mysql> show DATABASES;mysql> use TEST;mysql> show TABLES;mysql> ...
  • 使用SQL语句导入csv为表,速度快! 使用SQL语句可以快速实现大量数据导入数据库的效果。示例如下: 1 2 3 4 load data infile '..\\uploads\\test.csv' into table ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 284
精华内容 113
关键字:

mysql如何导入csv文件

mysql 订阅