版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

mysqldump

使用mysqldump备份数据

mysqldump用于备份数据,可指定数据库中的某个表,也可以备份整个数据库,格式如下:

代码块
mysqldump [其他选项] 数据库名 [表1名, 表2名, 表3名...]

比如:

代码块
mysqldump -uroot -hlocalhost -p xiaohaizi student_score > student_score.sql

上面备份的是xiaohaizi这个数据库中的student_score表。

还可以备份指定数据库中的所有表,以及所有数据库的所有表,如下:

代码块
mysqldump -uroot -hlocalhost -p --databases xiaohaizi dahaizi
mysqldump -uroot -hlocalhost -p --all-databases

使用SOURCE语句恢复数据

示例:

代码块
DROP TABLE student_score;
SOURCE C:\Users\xiaohaizi\student_score.sql;
SELECT * FROM student_score;
提示

经测试这里的\要进行转义,比如 SOURCE C:\\test.sql;


以文本形式导出或导入

将表中的数据以文本形式导出或导入,比如CSV格式以便于在Excel中查看或是将Excel文件中的数据导入到表。

导出数据

代码块
SELECT ... INTO OUTFILE '文件路径' [导出选项]

常用的导出选项有以下几个:

  • FIELDS TERMINATED BY: 表示列分隔符,也就是各列的值之间以什么符号分隔,默认为\t。
  • FIELDS [OPTIONALLY] ENCLOSED BY: 表示列引用符,也就是每个列的值使用什么符号包裹起来,默认为空格。如果加上OPTIONALLY则只会作用于字符串类型的列。
  • LINES STARTING BY: 每行开始符号,默认是空字符。
  • LINES TERMINATED BY: 表示行结束符,默认为换行符\n。

示例:

代码块
SELECT * FROM student_score INFO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/student_score.txt';

导入数据

代码块
LOAD DATA [LOCAL] INFILE '文件路径' INTO TABLE 表名 [导入选项]

这条命令的选项与输出数据的选项一致。














目录