本博文源于mysql基础,主要对事务与数据库的备份与恢复做相应学习与练习。包含开始/提交/撤销事务命令、数据库备份/恢复数据库实战。
在进行本章之前,需要创建数据库和数据表
创建数据库:
create database test_db;
然后创建数据表
use test_db;
create table tb_students_info
(id INT(11) PRIMARY KEY,
name VARCHAR(10),dept_id INT(11),
age INT(11),sex VARCHAR(4),height FLOAT,login_date DATE);
然后插入记录
insert into tb_students_info values(1,'Dany',1,25,'F',160,'2015-09-10');
insert into tb_students_info values(2,'Green',3,23,'F',158,'2016-10-22');
insert into tb_students_info values(3,'Henry',2,23,'M',159,'2016-10-23');
insert into tb_students_info values(4,'Jane',1,22,'F',156,'2016-10-12');
insert into tb_students_info values(5,'Jim',1,24,'M',158,'2016-10-22');
insert into tb_students_info values(6,'John',2,21,'M',152,'2016-10-24');
insert into tb_students_info values(7,'Lily',6,22,'F',160,'2016-10-25');
insert into tb_students_info values(8,'Susan',4,23,'F',166,'2016-10-26');
insert into tb_students_info values(9,'Green',3,22,'M',170,'2016-10-27');
insert into tb_students_info values(10,'Green',4,23,'M',193,'2016-10-23');
事务
事务是用户一系列的数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
为什么要使用事务
事务有四个特性被广为传颂:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability).这4个特性简称为ACID特性。
- 原子性:就是看作一个不可分割的单位,称为原子工作单元,需要由恢复机制来实现。
- 一致性:事务开始之前,数据库处于一致性的状态;事务结束后也将处于一致状态。比如:银行转账,转账前后总金额不变。
- 隔离性:系统必须保证事务不受其他并发执行事务的影响,多事务运行时,互不干扰。
- 持久性:一个已完成的事务对数据所做的任何变动在系统中是永久有效的,即使它本身产生的修改是错的。
开始事务
语法格式如下:
BEGIN TRANSACTION <事务名称> | @<事务变量名称>
提交事务
提交事务,意味着将事务开始以来所执行的所有数据修改成为数据库的永久部分,因此也标志着一个事务的结束。一旦执行了该命令,将不能回滚事务。
COMMIT TRANSACTION <事务名称> | @<事务变量名称>
撤销事务
ROLLBACK [TRANSACTION]
<事务名称>|@<事务变量名称>
|<存储点名称>|@<含有存储点名称的变量名>
数据库的备份恢复
相信应该了解删库跑路那种,背地里肯定做了备份,不然会被~~
数据库备份
格式:
SELECT INTO OUTFILE
把表数据导出到一个文本文件中进行备份
例子:将数据库test_db的表tb_students_info的全部数据备份到D盘目录下的stuent1.txt的文件中
select * into outfile 'D:/student1.txt' from test_db.tb_students_info;
如果报错了
查看这篇博文
MYSQL导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it
然后成功去d盘看文件