MySQL中导出CSV格式数据的SQL语句样本如下:
select * from test_info
into outfile '/tmp/test.csv'
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';
MySQL中导入CSV格式数据的SQL语句样本如下:
load data infile '/tmp/test.csv'
into table test_info
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';
里面最关键的部分就是格式参数
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n'
这个参数是根据RFC4180文档设置的,该文档全称Common Format and MIME Type for Comma-Separated Values (CSV) Files,其中详细描述了CSV格式,其要点包括:
(1)字段之间以逗号分隔,数据行之间以\r\n分隔;
(2)字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。
文件:test_csv.sql
use test;
create table test_info (
id integer not null,
content varchar(64) not null,
primary key (id)
);
delete from test_info;
insert into test_info values (2010, 'hello, line
suped
seped
"
end'
);
select * from test_info;
select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
delete from test_info;
load data infile '/tmp/test.csv' into table test_info fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
select * from test_info;
文件:test.csv
2010,"hello, line
suped
seped
""
end"
在Linux下如果经常要进行这样的导入导出操作,当然最好与Shell脚本结合起来,为了避免每次都要写格式参数,可以把这个串保存在变量中,如下所示:(文件mysql.sh)
#!/bin/sh
# Copyright (c) 2010 codingstandards. All rights reserved.
# file: mysql.sh
# description: Bash中操作MySQL数据库
# license: LGPL
# author: codingstandards
# email: codingstandards@gmail.com
# version: 1.0
# date: 2010.02.28
# MySQL中导入导出数据时,使用CSV格式时的命令行参数
# 在导出数据时使用:select ... from ... [where ...] into outfile '/tmp/data.csv' $MYSQL_CSV_FORMAT;
# 在导入数据时使用:load data infile '/tmp/data.csv' into table ... $MYSQL_CSV_FORMAT;
# CSV标准文档:RFC 4180
MYSQL_CSV_FORMAT="fields terminated by ',' optionally enclosed by '\"' escaped by '\"' lines terminated by '\r\n'"
使用示例如下:(文件test_mysql_csv.sh)
#!/bin/sh
. /opt/shtools/commons/mysql.sh
# MYSQL_CSV_FORMAT="fields terminated by ',' optionally enclosed by '\"' escaped by '\"' lines terminated by '\r\n'"
echo "MYSQL_CSV_FORMAT=$MYSQL_CSV_FORMAT"
rm /tmp/test.csv
mysql -p --default-character-set=gbk -t --verbose test <<EOF
use test;
create table if not exists test_info (
id integer not null,
content varchar(64) not null,
primary key (id)
);
delete from test_info;
insert into test_info values (2010, 'hello, line
suped
seped
"
end'
);
select * from test_info;
-- select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
select * from test_info into outfile '/tmp/test.csv' $MYSQL_CSV_FORMAT;
delete from test_info;
-- load data infile '/tmp/test.csv' into table test_info fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
load data infile '/tmp/test.csv' into table test_info $MYSQL_CSV_FORMAT;
select * from test_info;
EOF
echo "===== content in /tmp/test.csv ====="
cat /tmp/test.csv
分享到:
相关推荐
这个简短的bash代码演示了如何使用命令行以及curl和sed等标准工具轻松地将SFDC报告导出为CSV。工作流程curl调用SFDC API登录入口点sed解析SOAP响应卷曲以验证SFDC报告端点卷曲以将报告导出为CSV参数 -s <URL> : ...
如何通过GitBash上安装MySQL,以及其中会遇到的一些问题的解决方案
MySQL导入sql文件
BASH中文手册.pdfBASH中文手册.pdf
Bash中文手册,适合Linux shell入门级使用!
Bash使用
BASH导入脚本BASH脚本可导入CSV并将其转换为收件人列表,并使用您存储在SparkPost中的模板将传输传送给相应的收件人。如何使用克隆存储库 git clone https://github.com/SparkPost/sparkpost-csv2tx.git使用标题(第...
该存储库包含适用于Firefly III应用程序和Firefly III CSV导入程序的docker-compose文件。 设置 当地的 执行预安装脚本。 bash pre-install.sh 之后,为相应的应用程序运行shell脚本。 萤火虫III bash install_...
中国linux论坛man手册页翻译计划,bash的中文解释,翻译的很不错。对于学习linux脚本编程的同学来说,绝对是不可以没有的。word文档格式。
前几天重装了mysql,装好之后navicat一直正常可以对mysql进行操作,但是今天要使用命令行进行操作时遇到-bash: mysql: command not found的问题。 总结一下解决办法: 这个问题的出现是两个原因 1 .bash_profile中...
学习git和gitbash使用的一些详细操作,学习git和gitbash使用的一些详细操作
使用Bash Shell 脚本对比两个CSV文件中指定字段差异
Bash的中文文档,其中有错别字以及漏字的地方,请大家通过上下文来进行理解。
该包中包含一键安装mysql5.7和mysql8.0脚本,分为mysql二进制包安装和yum安装,并一起部署MySQL备份策略 用于快速部署mysql场景,适合多项目快速部署 备份工具为xtrabackup
bash4.0中文参考 你懂的 方便各位下载,不错的参考书 .
第二版还加入了一些新命令,增强了安全性,也加入了readline,增强了配置和安装过程,并且增加了附助编程的bash shell调试器。 经过不懈的实践和对实例及问题进行深入的研究后,你会发现《学习bash》对Linux和其他...
Gitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmind
mysqlbkup, 在BASH中,轻量级MySQL备份脚本 mysqlbkup用于备份所有MySQL数据库的轻量级MySQL备份脚本。在几分钟内,你可以以在任何Linux服务器上设置你的MySQL数据库的每晚备份。命令行指令下载软件包通过 sudo - ...