一、从文本文件中读取数据
1、导出数据
select *into outfile 文件名 选项 from 表名; --这里的选项指所需要分隔符号
如将表customer的数据导出到C:/data/outdata.csv
mysql> select *into outfile 'C:/data/outdata.csv' fields terminated by ',' from customer;
去到C:/data/目录中打开outdata.csv文件即可发现
导出可以导出成其他类型的文件,如txt,excel
二、导入文本文件中的数据
load data infile 文件名 into table 表名 选项;
如导入out.csv的数据到表customer中
mysql> load data infile 'C:/data/out.csv' into table customer fields terminated by ',';
选项 | fields terminated by +分隔符(默认为[\t],即tab字符) |
lines terminated by +换行字符(默认为[\n]) | |
ignore 最初跳过的行 lines(默认为0) |
三、执行文件中保存的SQL系列命令
可以在一个文件中编辑好所有命令,然后一次性执行
1、运行保存了SQL命令的文件
source + 文本文件名 --注意:source不是SQL命令,不能用分号“;”结束
在sql.txt中写了如下语句
运行 mysql> source C:\data\sql.txt 后结果:
可以在DOS窗口不启动MySQL监视器而直接运行SQL文本文件的命令
mysql 数据库名 -u用户名 -p密码 -e "MySQL监视器命令"
四、保存SQL的执行结果到文件
1、使用重定向将SQL语句执行的结果
dir可以显示目录
dir>123.txt可以将命令的执行结果保存到123.txt文件中
2、使用tee命令将结果保存到文本文件中
1)tee + 输出的文件名
2)再执行SQL语句,其执行结果会保存到刚刚定义的输出文件中
如执行:mysql> tee C:/data/123.txt;
五、数据库整体的备份与恢复
1、通过转储的方法备份
mysqldump -u用户名 -p密码 数据库名>输出文件名
如果失败 尝试在后面加上 --default-character-set=utf8
2、通过备份恢复数据
如我们需要将数据恢复到数据库 test1中。首先要使用mysqladmin命令来创建数据库test1,然后对MySQL命令使用输入重定向来恢复数据库
mysqladmin -u root -p密码 create test1
mysql -u root -p密码 test1< 备份文件名 --default-character-set=utf8
如果不成功,很可能是字符编码格式问题,最好都加上--default-character-set=utf8