目录
导出数据
导出数据语法
导入数据
导入数据语法
有时需要将MySQL中的数据导出到外部存储文件中
MySQL中的数据可以被导出成
- sql文本文件
- xml文件
- html文件
同样的 该类文件也可以导入到MySQL数据库中
导出数据
导出数据语法
select columnlist from table where condition into outfile 'filename' [option]
前面select就是一条查询语句,返回一条或多条记录
into outfile 将结果导出到名为 'filename' 的外部文件中
可选项 [options]
[options] | 作用 |
fields terminated by '' | 设置字段之间的分隔符,可以为单个或多个字符,默认为\t |
fields [optionally] enclosed by 'values'; | 设置字段的包围字符,只能为单个字符,使用了[optionally] 则只有char和verchar等字符数据字段被包括 |
fields escaped by 'value' | 设置如何写入或读取特殊字符,只能为单个字符 可以当做是设置转义字符 默认为'\' |
lines starting by 'value' | 设置每行数据开头的字符 可以为单个或者多个 |
lines terminated by 'value' | 设置每行数据结尾的字符,可以为单个或者多个,默认为\n |
一次尝试
select * from employee into outfile "D:\kaka\employee.txt";
#报错
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
出现这个问题的原因是mysql的secure_file_prive这个选项没有开启,或者这个选择了特定的文件路径,只有在这个文件路径下的文件才能导入导出mysql
首先查看secure_file_priv参数
show variables like 'secure_file_priv'; 或者 show variables like '%secure%';
由此可知我们可以将导入或导出的文件置于路径 C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\
在使用命令时记得使用转义字符
实际的命令为
select * from employee into outfile "C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\employee.txt";
导入数据
导入数据语法
load data infile 'filename' into table table_name [option] [ignore number lines]
前面的 infile 'filename' 就是要加载的数据文件路径
into table 将文件的内容导入到表 table_name 中
可选项 [options]
[options] | 作用 |
fields terminated by '' | 设置字段之间的分隔符,可以为单个或多个字符,默认为\t |
fields [optionally] enclosed by 'values'; | 设置字段的包围字符,只能为单个字符,使用了[optionally] 则只有char和verchar等字符数据字段被包括 |
fields escaped by 'value' | 设置如何写入或读取特殊字符,只能为单个字符 可以当做是设置转义字符 默认为'\' |
lines starting by 'value' | 设置每行数据开头的字符 可以为单个或者多个 |
lines terminated by 'value' | 设置每行数据结尾的字符,可以为单个或者多个,默认为\n |
尝试
load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\employee.txt' into table employee;
没毛病老铁