本日来讲一下在MySQL中导入和导出CSV格式数据的操作。
CSV格式数据
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,由于分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。
CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。常日,所有记录都有完备相同的字段序列。
CSV是一种通用的、相对大略的文件格式,被用户、商业和科学广泛运用。最广泛的运用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(每每是私有的和/或无规范的格式)。由于大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
“CSV”并不是一种单一的、定义明确的格式(只管RFC 4180有一个被常日利用的定义)。因此在实践中,术语“CSV”泛指具有以下特色的任何文件:
纯文本,利用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由记录组成(范例的是每行一条记录);
每条记录被分隔符分隔为字段(范例分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
每条记录都有同样的字段序列。
MySQL中导入CSV格式数据
这边我用了PHPmyadmin工具连接MySQL数据库,其他的也可以,比如Navicat for MySQL。
新建test数据库,新建数据表:csvmysql
设置表构造:
字段名MMSI类型为int,Record_Datetime 类型为int,目标字段名,类型,就按照上图设置。
下面开始插入数据:
Windows下:
LOAD DATA INFILE 'C:\\Users\\Administrator\\Desktop\\test\\test.csv'
INTO TABLE `csvmysql`
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"大众' ESCAPED BY '\公众'
LINES TERMINATED BY '\n';
查当作果:
原来为空表的csvmysql,现在已经有了100多万行数据,插入数据成功。
Linux下:
LOAD DATA INFILE
'/tmp/test.csv'
INTO TABLE 'csvmysql'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"大众' ESCAPED BY '\"大众'
LINES TERMINATED BY '\r\n';
PS.如果运行上面的结果报错,#1290 – The MySQL server is running with the –secure-file-priv option so it cannot execute this statement。
办理办法:
1、配置文件中将这行注释“secure-file-priv=”datadir=”D:\AppServ/MySQL/Uploads””(根据环境不同,路径不同,直接打开my.ini搜索secure-file-priv注释即可);很多人添加权限依然弗成便是由于这行没有添加;
把稳:加完后一定要重启mysql;
2、赋权限
详情请看MySQL中的主键问题和赋权限问题
MySQL中导出CSV格式数据
查询语句:
--Windows下:
SELECT
INTO OUTFILE \"大众f:\\out.csv\"大众
FIELDS TERMINATED BY ','
ENCLOSED BY '\"大众'
LINES TERMINATED BY '\n'
FROM csvmysql;
--Linux下:
SELECT
INTO OUTFILE \公众/tmp/out.csv\公众
FIELDS TERMINATED BY ','
ENCLOSED BY '\公众'
LINES TERMINATED BY '\n'
FROM csvmysql;
然后在我的F盘下面涌现了out.csv文件,打开查看和数据库中数据同等。
以上便是在MySQL中导入导出CSV格式数据的方法。
希望通过上面的操作能帮助大家办理插入数据涌现的一些问题。如果你有什么好的见地,建议,或者有不同的意见,我都希望你留言和我们进行互换、谈论。
如果想快速联系我,欢迎关注微信"大众年夜众号:AiryData。