备份与恢复
备份数据
数据库中的数据十分重要,出于安全性考虑,在数据库的使用中,应该注意使用备份功能。
备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。
mysqldump
是 MySQL
用于备份数据库的实用程序。它主要产生一个 SQL
脚本文件,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。
使用 mysqldump
备份的语句:
shell
mysqldump -u root -p 数据库名 > 备份文件名; # 备份整个数据库
mysqldump -u root -p 数据库名 表名字 > 备份文件名; # 备份整个表
mysqldump 是一个备份工具,因此该命令是在终端中执行的,而不是在 mysql 交互环境下
我们尝试备份整个数据库 python
,将备份文件命名为 bak.sql
,先 Ctrl+D
退出 MySQL 控制台,再打开命令终端,在终端中输入命令:
shell
cd /home/ubuntu/
mysqldump -u root -p python > bak.sql;
使用命令 ls
可见已经生成备份文件 bak.sql
:
查看备份文件的内容,可以看见里面不仅保存了数据,还有所备份的数据库的其他信息。
恢复数据
mysql 命令导入
shell
mysql -u 用户名 -p < /home/abc/源.sql
mysql 里面用 source 命令导入
shell
mysql> source /home/abc/源.sql
使用
shell
source /home/ubuntu/Desktop/bak.sql
这就是一条恢复语句,它把 bak.sql
文件中保存的python
数据库恢复。
还有另一种方式恢复数据库,但是在这之前我们先使用命令新建一个空的数据库 test:
shell
mysql -u root -p # 因为在上一步已经退出了 MySQL ,现在需要重新登录
CREATE DATABASE test; # 新建一个名为 test 的数据库
再次退出 MySQL,然后输入语句进行恢复,把刚才备份的 bak.sql 恢复到 test数据库:
mysql -u root -p test < bak.sql
我们输入命令查看 test 数据库的表,便可验证是否恢复成功:
shell
mysql -u root -p # 因为在上一步已经退出了 MySQL ,现在需要重新登录
use test; # 连接数据库test
SHOW TABLES; # 查看 test 数据库的表
总结
查询的完整格式 不要被吓到 其实很简单 !
shell
SELECT select_expr[, select_expr, ...] [
FROM tb_name
[WHERE 条件判断]
[GROUP BY {col_name | postion} [ASC | DESC],...]
[HAVING WHERE 条件判断]
[ORDER BY {col_name|expr|postion} [ASC | DESC],...]
[ LIMIT {[offset,]rowcount | row_count OFFSET offset}]
]
- 完整的 select 语句
sql
select distinct *
from 表名
where....
group by ... having ...
order by ...
limit
start
,count
- 执行顺序为:
- from 表名
- where ....
- group by ...
- select distinct *
- having ...
- order by ...
- limit start,count
- 实际使用中,只是语句中某些部分的组合,而不是全部