mysql - 导入导出csv
实战价值
没啥用,因为要进行导出,需要开启 secure_file_priv 参数。
可以通过 set 命令,临时修改参数值,但是通常会失败,因为默认 secure_file_priv 是只读的。
大部分情况,必须修改 my.cnf 文件,然后再重启 mysql。
- 为了导数据,重启 mysql,多少有点小题大做;
- 修改这些配置,可能会涉及到文件系统权限和数据库安全性问题。
优势
跨平台,oracle 导出的数据,可以直接导入到 mysql。
劣势
- 无法确定是空字符串,还是 null;
- 如果 10 列只要导入 5 列,脚本很难写。
导出 csv
本章节内容,参考自百度 AI
在MySQL中导出CSV文件有多种方法可以实现,以下是几种常见的方法:
- 使用 SELECT INTO OUTFILE 语句导出 CSV 文件:
SELECT col1, col2, col3
INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM your_table;
这个方法将查询结果直接导出为 CSV 文件,并指定了逗号作为列分隔符,双引号作为可选的包围符号,换行符作为行分隔符。你需要将 /path/to/file.csv 替换为你希望保存CSV文件的路径。
- 使用SELECT语句导出结果,然后编写脚本将结果转换为CSV格式:
SELECT column1, column2, column3
FROM table_name
INTO OUTFILE '/path/to/temp.txt'
LINES TERMINATED BY '\n';
- 使用SELECT语句生成CSV数据并使用MySQL的CSV存储引擎直接导出:
CREATE TABLE csv_export
SELECT col1, col2, col3
FROM your_table;
ALTER TABLE csv_export
ENGINE = CSV
CHARACTER SET utf8
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
SELECT *
INTO OUTFILE '/path/to/file.csv'
FROM csv_export;
DROP TABLE csv_export;
这个方法创建了一个临时表csv_export,将查询结果插入到该表中,然后使用CSV存储引擎将表导出为CSV文件。导出后,临时表将被删除。
导入 csv
载入文件需要使用 LOAD DATA INFILE 语句。
- 样例 A:
LOAD DATA INFILE 'filename.txt'
INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
- 样例 B:
LOAD DATA INFILE 'filename.txt'
INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(column1, column2, column3);
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!