Heim > Datenbank > MySQL-Tutorial > Hauptteil

csv批量导入mysql命令_MySQL

WBOY
Freigeben: 2016-06-01 12:59:37
Original
1186 Leute haben es durchsucht

今天把从Kaggle上下载下来的csv数据导入mysql,想做个统计分析,怎奈csv文件有些大,所以只能用mysql 命令导入,现mark下,以备以后不时之需:

1. 导入:

<code class="language-mysql hljs sql">基本语法:
load data [low_priority] [local] infile &#39;file_name txt&#39; [replace | ignore]
into table tbl_name
[character set gbk]
[fields
[terminated by&#39;t&#39;]
[OPTIONALLY] enclosed by &#39;&#39;]
[escaped by&#39;\&#39; ]]
[lines terminated by&#39;n&#39;]
[ignore number lines]
[(col_name, )]
</code>
Nach dem Login kopieren

导入命令_example:

<code class="language-mysql hljs sql"><code class="language-mysql hljs sql">load data infile &#39;csv文件路径\\test.csv&#39; 
replace into table 表名              
fields terminated by &#39;,&#39; 
optionally enclosed by &#39;"&#39; 
lines terminated by &#39;\n&#39; 
ignore 1 lines(Id,@dummy,DayOfWeek,PdDistrict,Address,X,Y);</code></code>
Nach dem Login kopieren

<code class="language-mysql hljs sql">不要小看这个简单的example,包含了很多东西;

<code class="language-mysql hljs sql">第一行就是导入文件;

<code class="language-mysql hljs sql">第二行参看语法就会发现有两个词:replace 和 ignore 。<strong>replace</strong>和<strong>ignore</strong>关键词控制对现有的唯一键记录的重复的处理。如果你指定<strong>replace</strong>,新行将代替有相同的唯一键值的现有行。如果你指定<strong>ignore</strong>,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。<br /> 所以我觉得现实情况下你的表设计主键,还是最好要不会重复的字段;

<code class="language-mysql hljs sql">第三~四行很简单就是每个具体字段内容之间是以逗号隔开的,那就以逗号分开。<br /> erminated by描述字段的分隔符,默认情况下是tab字符(\t)<br /> enclosed by描述的是字段的括起字符,就是说字段中如果有引号,就当做是字段的一部分。<br /> 语法中还有一个是 escaped by, 它描述的是转义字符。默认的是反斜杠(backslash:\ )

<code class="language-mysql hljs sql">第五行 lines terminated by是对每行进行分割,这里要注意一个问题,如果csv文件是在windows下生成,那分割用 &lsquo;\r\n&rsquo;,linux下用 &lsquo;\n&rsquo;。

<code class="language-mysql hljs sql">第六行中 ignore 1 lines 是忽略第一行,因为第一行往往是字段名,后边括号中有个字段很特别 @dummy,它是说如果csv文件中有个字段我不想插进去,那就把对应字段名变成@dummy。

<code class="language-mysql hljs sql"><strong><em>PS:想顺便插入导入时间,就在最后加上set update_time=current_timestamp;</em></strong>

<code class="language-mysql hljs sql"><strong>2. 导出:</strong>

<code class="language-mysql hljs sql">同时附带上导出命令:

<code class="language-mysql hljs sql"><code class="language-mysql hljs sql"><code class="hljs sql">select * from 表名
into outfile &#39;导出路径\\test.csv&#39; 
fields terminated by &#39;,&#39; 
optionally enclosed by &#39;"&#39; 
escaped by &#39;"&#39; 
lines terminated by &#39;\n&#39;; </code></code></code>
Nach dem Login kopieren

<code class="language-mysql hljs sql"><code class="hljs sql">希望多多交流!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage