表-数据的导入与导出

1. 数据导入

使用load data infile语句加载数据

load data infile '/mysql_data/employee_name.csv' into table employee_names
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n';

文件名可以是一个完整的路径,指定其确切的位置。如果是相对目录,则会被解析于相对于客户机程序启动的目录。这里建议使用绝对路径。


如果文件开头有想要忽略的行,则可以使用ignore n lines指定忽略。如

load data infile '/mysql_data/employee_name.csv' into table employee_names
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n'
ignore 1 lines;

也可以用replace或ignore来处理重复的行,建议使用ignore。

load data infile '/mysql_data/employee_name.csv' replace into table employee_names
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n';

load data infile '/mysql_data/employee_name.csv' ignore into table employee_names
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n';

2. 数据导出

导出为文件

可以使用 select into outfile语句将输出结果保存到文件中。在导出的时候可以指定行列分隔符,方便再导入到其他数据平台。

select first_name,second_name into outfile 'employee_name.csv'
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n'
from employees 
limit 10;

则数据将会被输出到{secure_file_priv}/{database_name}指定的路径中。如果文件已经存在,则数据导出会失败,所以每次执行或将文件移动到其他位置时都需要提供一个唯一的名称。
注:secure_file_priv的路径可以在配置文件my.cnf中查看。

可以将secure_file_priv值设置为「.」,这样数据导出就不会到相对路径下。导出的时候可以写一个绝对路径,则数据会被导出到该绝对路径下。

另存为表(可用于数据备份)

  1. 如果表不存在
create table first_name_only as 
select distinct first_name
from employees;
  1. 如果表已经存在
insert into first_name_only
select distinct first_name
from employees;

当表中有PRIMARY KEY字段时,为了避免重复,可以使用insert ignore。


其实在实际工作中,我们很少用命令行来加载数据到数据库表中的。通常情况下是会使用一些可视化的客户端(如navicate)进行数据的导入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值