Mysql 导入和导出数据到CSV

2020年05月15日 1302点热度 1人点赞 0条评论

Mysql 导入和导出数据CSV

Mysql中经常会遇到这样的场景,将需要将一个查询结果导出到csv分享给其他人,或者将csv数据导入到Mysql中。可以通过sql语句来完成,非常高效。

导入数据

  1. 首先需要在mysql中新创建一个数据表,可以使用create table 语句,也可以手工的方式创建。

  2. 使用load data infile 语句来完成数据的导入,数据字段格式与创建的表保持一致。

    注意事项/ 解释

  • 使用这种方式导入为追加导入,如果需要全量导入需要使用truncate 清空原来的表。
  • fields terminated by ',' 使用,作为分隔符
  • enclosed by 字段括起字符,数据用什么符号扩起来,默认为空,一般可以是双引号、括号等
  • escaped by 转义字符,默认的是反斜杠(backslash:\ )
  • window系统,使用 lines terminated by '\r\n' 换行符采用 \r\n Linux 系统使用\n
  • ignore 1 lines csv文件中第一行一般为列名称,因此在导入数据库时应省略第一行
-- 创建表
CREATE TABLE customer (
  customer_id varchar(40) DEFAULT NULL,
  customer_name text,
  age int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- 导入数据,追加导入
LOAD DATA INFILE 'c:/load_data_sample.csv'
INTO TABLE customer
fields terminated by',' 
enclosed by '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS; 

导出数据

导出数据的方式与导入数据语句基本相同。 使用一个查询,将查询结果保存到自己制定的路径下。

-- 导出数据,不带表头
select * from customer into outfile 'c:/export_data_sample.csv'
fields terminated by',' 
enclosed by '"'
LINES TERMINATED BY '\r\n';
  • 这样导出数据不会带上表头,如果想加上表头还需要有额外的一步,拼接上一个表头文件
-- 导出数据,带表头
select * into outfile 'c:/export_data_sample.csv'
fields terminated by',' 
enclosed by '"'
LINES TERMINATED BY '\r\n'
from (select 'customer_id','customer_name','age' union 
select * from customer) b

KOgoal

文章评论