MySQL 实战
1 学习内容
(1)数据导入导出
(2)将之前创建的任意一张MySQL表导出,且是CSV格式
(3)再将CSV表导入数据库
参考:https://blog.youkuaiyun.com/u010700335/article/details/40554703
1.1 MYSQL如何导出文本文件 (备份为csv,txt,等)
mysql 下导出为指定格式的数据的外部任意文件类型
mysql> use test
mysql-> select * from salary into outfile 'SELECT * FROM salary INTO OUTFILE 'F:\\aProject_EN\\MySQL\\salary.csv' FIELDS TERMINATED BY '\,'; --(指导出数据的,注意转义字符哦)
结果为:
知识补充:
一般形式:
select [列名称] from tablename [where]
into outfile ‘目标文件路径’ [option]
其中option参数常用的5个选项
FIELDS TERMINATED BY ‘字符串’:设置字符串为字段的分割符,默认值为 \t;
FIELDS ENCLOSED BY ‘字符’:设置字符串括上char varchar text等字符型字段,默认值为 无任何符号;
FIELDS OPTIONALLY ENCLOSED BY ‘字符’:设置字符串括上字段的值,默认值为 无任何符号;
LINES STARTING BY ‘字符串’:设置每一行开头的字符,默认值为 无任何字符;
FIELDS ESCAPED BY ‘字符’:设置转义字符,默认值为 \;
LINES TERMINATED BY ‘字符串’:设置每行结束符,默认值为 \n;
如:
select * from salary into outfile ‘F:\aProject_EN\MySQL\salary.csv’
FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘"’
LINES STARTING BY ‘>’ TERMINATED BY ‘\r\n’;
关于报错:
MYSQL导入数据出现
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
参考:https://blog.youkuaiyun.com/qq_31518899/article/details/75662090
方法一:
这个原因其实很简单,是因为在安装MySQL的时候限制了导入与导出的目录权限
只能在规定的目录下才能导入
我们需要通过下面命令查看 secure-file-priv 当前的值是什么
show variables like ‘%secure%’;
我们可以看到value的值为E:\mysql\
那么我们把导入的路径改为上面的值就可以了
方法二:
如果觉得这样太麻烦,那么我们就需要改配置文件,
到C:\ProgramData\MySQL\MySQL Server 5.7目录下找到my.ini的配置文件,(注意ProgramData是隐藏目录需要去 计算机->工具->文件夹选项 里面把隐藏的文件显示出来)
在my.ini文件中搜索secure-file-priv找到并将它的值改为
secure-file-priv=‘’(注意不是下划线)
重启MySQL就可以在任何目录下操作了(如果重启MySQL不行就重启电脑,博主亲测)
重启方法为:
右键点击 计算机->管理->服务和应用程序->找到MySQL点击右键->重新启动
1.2 MYSQL如何导入文本文件
(1)第一步:创建对应字段的数据表
create table csv_test2(
id int(8) primary key,
name varchar(64),
value int(32)
);
(2)第二步:导入外部数据
LOAD DATA INFILE 'F:\\aProject_EN\\MySQL\\salary.csv'
INTO TABLE csv_test2
FIELDS TERMINATED BY '\,'
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED by'\r\n'
ignore 1 lines
(id,name,value);
上面的 lines terminated by ‘\r\n’ 是 要求换行符号,为 windows的换行
上面的 ignore 1 lines是 忽略第一行的标题行。