作为常规操作,数据的导入导出是MySQL学习中务必要求掌握的知识。当然大多数情况下,MySQL数据库中对数据操作导入导出还是相对固定而简单,下面我们一起来了解下。
导出数据
CSV代表逗号分隔值。 您经常使用CSV文件格式在Microsoft Excel,Open Office,Google Docs等应用程序之间交换数据。
以CSV文件格式从MySQL数据库中获取数据将非常有用,因为您可以按照所需的方式分析和格式化数据。
MySQL提供了一种将查询结果导出到位于数据库服务器中的CSV文件的简单方法。
在导出数据之前,必须确保:
- MySQL服务器的进程对包含目标CSV文件的目标文件夹具有写访问权限。
- 要导出的目标CSV文件不能存在。
# 导出数据
SELECT * from customers
WHERE city='NYC'
INTO OUTFILE 'E:/Learning/MySQL/customer.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
导出失败常见问题:
[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。查看 secure_file_priv 的值(命令:SHOW VARIABLES LIKE “secure_file_priv”;),默认为NULL,表示限制不能导入导出。
解决方法:打开my.cnf 或 my.ini,加入 secure_file_priv=’’ 语句后重启mysql。
- 问题分析请查阅:https://blog.csdn.net/fdipzone/article/details/78634992
- 其他常见问题:https://www.jianshu.com/p/0f10c218d6fc
导入数据
参考资料:https://www.yiibai.com/mysql/import-csv-file-mysql-table.html
LOAD DATA INFILE语句允许您从文本文件读取数据,并将文件的数据快速导入数据库的表中。
在导入文件操作之前,需要准备以下内容:
- 将要导入文件的数据对应的数据库表。
- 准备好一个CSV文件,其数据与表的列数和每列中的数据类型相匹配。
- 连接到MySQL数据库服务器的帐户具有FILE和INSERT权限。
# 导入数据
LOAD DATA INFILE 'E:/Learning/MySQL/customer.csv'
INTO TABLE customers1
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;