mysql中数据库的备份和截断表总结

时间:2024-03-13 08:49:44

**

因为本人之前一直写的是电子笔记,对自己学会的东西作一个总结,所以基本都是文字,本来想全发成博客的形式,发现全发成博客比较花费时间,而且一直发博客质量不是很好,而且通过发博客学到的东西也会变少,所以准备先把笔记发出来,后续再将它们改成博客的形式,争取2天至少改一篇博客,觉得我总结的还行的可以先关注我,后续会发成博客形式,内容也会更加完善

**
数据库的备份:
因为可能某些数据比较重要,一定不能损坏,所以我们就可以对这样的数据进行备份,备份方法为mysqldump -u root -p -B 数据库名 > 数据库备份存储的文件路径,例如我要备份charles这个库备份到本目录中去,可以这样使用,mysqldump -u root -p -B charles > ./charles.sql(后面的charles.sql文件可以不存在,然后系统会自动帮我们新建一个文件来存储MySQL文件),然后要注意的是这个备份不是在进入MySQL后备份,而是在linux系统里面保存,也就是我们还没有进入MySQL的时候保存
mysql中数据库的备份和截断表总结
有时我们可以不只保存一个数据库,所以如果我们要一次保存多个数据库,可以直接在第一个数据库后,空一格输入其它的库名称,来备份其它的库,例如mysqldump -u root -p -B charles charles2 charles3 > ./charles.sql,我备份了三个数据库
有时我们可能只想备份某个数据表,而不想备份整个数据库,这时在备份数据表时,我们还得先输入库名,然后空一格再输入数据表名,就可以备份数据表了,例如mysqldump -u root -p -B charles student > ./charles.sql,我就备份了charles库里面的student数据表
我们备份完数据库后,可能还需要还原它,所以我们可以使用这个方法来还原此文件,mysql -u root -p < 要还原文件所在的路径(注意还原文件还是在linux系统里面进行还原,并没有进入数据库中),例如我要还原charles.sql这个数据库,可以使用mysql -u root -p < ./charles.sql

截断表:
其实截断表,就是删除数据表中所有的数据,它和delete的不同之处在于,delete可以选择只删除一些数据,而截断表则是删除所有的数据,它的优势在于,它删除数据表的速度特别快,不会像delete一样一行一行的删除数据,而是直接删除整张表的数据,不会记录是日志,它在删除数据后,并不会改变数据表的结构,不过如果之前对某个字段设置过auto_increment属性,那么这个属性将会重置,也就是说从0开始,使用截断表的命令是truncate table,使用方法是”truncate table 数据表名;“例如我现在有这样一张表:

现在我要清空这张数据表的数据,可以这样写truncate table test;

mysql中数据库的备份和截断表总结