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
分享到:
相关推荐
在数据库管理与维护中,数据的导入与导出是一项基本而重要的操作,尤其在MySQL这种广泛使用的数据库系统中。本文将深入探讨MySQL数据导入与导出的方法,通过实际案例解析,帮助读者快速掌握相关技巧。 #### 数据...
- **REPLACE** 或 **IGNORE**:用于处理导入数据时与表中已有数据的冲突情况。 - **FIELDS** 和 **LINES**:用于定义文件中字段和行的分隔符等细节。 - **应用场景**: - **大数据量导入**:当需要导入大量数据...
当你有已导出的数据文件,如`employees.sql`,可以使用`mysql`命令行客户端将其导入到新的数据库或表中: ```bash mysql -u [username] -p[password] database_name ``` 如果数据是以CSV或其他文本格式存在,如`...
使用`LOAD DATA INFILE`语句可以从`.csv`文件快速导入数据。例如: ```sql LOAD DATA INFILE 'data.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS...
这里我们关注的是如何将CSV(逗号分隔值)文件导入到MySQL数据库以及从MySQL导出数据到CSV文件。CSV文件是一种常见的数据交换格式,适用于不同系统和应用之间的数据传输。在本教程中,我们将讨论如何利用Python的...
在当今数据处理领域,将数据从数据库导出到CSV文件并进行转码是一种常见的需求,特别是在使用MySQL数据库时。本内容将详细介绍如何使用mysql命令行工具导出数据为CSV格式,并结合iconv命令行工具进行编码转换。同时...
MySQL 导出数据为CSV格式是数据库管理中常见的任务,特别是在数据分析、报表生成或系统迁移时。以下将详细讲解三种常见的导出方法及其注意事项。 1. **使用`INTO OUTFILE`命令** 这是一种直接在SQL语句中完成导出...
五、导出数据格式 除了默认的SQL格式,`mysqldump`还可以导出为其他格式,如CSV(用于Excel或其他电子表格软件): ```bash mysqldump -t mydatabase mytable --fields-terminated-by=',' --lines-terminated-by='\...
`mysqlimport`工具位于MySQL安装目录的`bin`子目录下,它允许用户将逗号分隔值(CSV)、制表符分隔值(TSV)或其他格式的文本文件快速批量导入到数据库的指定表中。在使用`mysqlimport`之前,确保你的MySQL服务正在...
`LOAD DATA INFILE`命令是另一种快速导入数据到MySQL的方法,它允许直接从文件中加载数据到表中。在命令行中,你可以这样使用: ```sql USE Meet_A_Geek; LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE ...
MySQL 数据导入导出是数据库管理中的重要操作,用于数据迁移、备份或数据分析。在MySQL中,`mysqlimport`是一个高效且便捷的命令行工具,它允许用户快速将文本文件中的数据导入到数据库的指定表中。本文将详细介绍`...
要将Excel文件中的数据导入到MySQL数据库中,一般需要先将Excel转换为MySQL能够识别的格式,如CSV或TXT文件,然后再使用`LOAD DATA INFILE`命令进行导入。 ##### 将Excel转换为CSV或TXT文件 假设Excel文件中包含了...
例如,导出CSV格式的数据: ```sql SELECT * FROM tutorials_tbl INTO OUTFILE '/tmp/tutorials.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; ``` 4. **权限要求**: ...
如果需要导出CSV格式的数据,可以使用如下命令: ```bash mysql -u 用户名 --password=密码 --database=数据库名 --execute='SELECT `FIELD`, `FIELD` FROM `TABLE` LIMIT 0, 10000 ' -X > 保存文件.sql ``` 这里...
在导入数据前,你可能需要先登录到 MySQL 服务器,使用 `mysql -u username -p` 命令,然后输入你的密码。确保你有足够的权限执行 `SOURCE` 命令和操作相关的数据库。 `mysqldump` 是一个用于备份和导出 MySQL ...