csv批量导入mysql命令_MySQL

WBOY
풀어 주다: 2016-06-01 12:59:37
원래의
1138명이 탐색했습니다.

今天把从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>
로그인 후 복사

导入命令_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>
로그인 후 복사

<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>
로그인 후 복사

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!