20150106--SQL事务操作+触发器一

捕获5555

捕获555

数据备份

数据备份将数据库里面的数据,复制到对应的文件,保存到对应的磁盘空间。如果在以后需要使用数据的时候,可以通过备份文件将数据还原到对应的数据库。

数据备份分为三种方式:文件备份,表数据备份,SQL备份

文件备份

文件备份就是将数据库对应的文件夹或者文件进行备份。

InnoDB和myisam的备份方式不一样:存储引擎文件存储的方式不一样。

InnoDB备份:表结构文件和ibdata1,如果有一些额外的数据,iblogfile也需要备份

myisam备份:直接被分三个文件:结构,索引和数据

文件备份还原:直接将文件放到对应的数据库文件夹下。

数据表备份

数据表备份指的是只针对某一张具体的表内的数据进行备份。需要通过mysql提供的命令,将数据表中的数据导出到对应的外部文件。

备份操作

备份语法

select */字段列表 into outfile 文件路径 from 表名;

wps1229.tmp

注意:只备份纯数据,没有表结构

指定结构备份:行数据如何处理,字段如何处理

select */字段列表 into outfile 文件路径 [fields 操作] [lines 操作] from 表名;

fields操作

terminated by:字段以什么结束,字段后面跟什么内容,默认的是“ ”

enclosed by:字段以什么包裹,字段两边用什么字符来包裹,默认是’’,什么都没有

escaped by:字段的特殊字符如何处理,默认的是使用’\’

lines 操作

starting by:每行一开始用什么字符显示,默认是’’

terminated by:每行用什么来结束(换行),默认的是’ ’

wps1268.tmp

所有的文件备份,只能将数据备份到不存在的文件里面,如果文件存在,那么备份失败。

wps1279.tmp

还原操作

将文件中的数据按照指定的格式,还原到对应的数据表

还原语法

load data infile 文件路径  into table 表名[(字段列表)] [fields 操作] [lines 操作];

不管是字段还是行操作都是与备份时应该一一对应。

wps127A.tmp

正确还原

wps128B.tmp

备份的数据可以不需要清空数据表就进行数据还原:前提是备份的数据可以插入到表中,而不会因为数据重复出错。

SQL备份

SQL备份:系统对需要备份的表,系统自动的组织表的创建语句和数据的插入语句(SQL语句),然后将对应的SQL语句备份到外部文件。即便在表不存在的情况下,系统也能根据备份的SQL语句自动创建表,并将备份的数据插入到表中。

备份操作

SQL备份必须通过客户端(mysqldump.exe)来操作,而不是通过SQL命令实现。

既然是通过客户端操作服务器:必须要连接认证(-hPup)

语法

mysqldump/mysqldump.exe –hPup 数据库 数据表1 数据表2 … > 文件路径

wps128C.tmp

SQL备份的最大颗粒度是到数据库,不能对整个数据库系统进行备份。

还原操作

还原就是将对应的SQL语句重新执行。

SQL备份还原有两种方式:mysql.exe进行外部还原和进入到SQL环境下使用命令还原。

mysql.exe还原

语法

mysql/mysql.exe –hPhp 数据库名字  < 文件路径

wps129C.tmp

SQL命令还原

要使用命令还原,必须先进入数据库环境。

语法

source 文件路径;

wps129D.tmp

三种备份中,SQL备份用的最多。

如果数据量很大,那么备份的效率会很低,所以备份时间显得非常重要。

SQL备份适用于全表备份。如果是想备份最新的数据SQL备份做不到。

增量备份

增量备份就是指对新的东西进行备份,将上次备份点之后的所有数据操作都备份,备份的SQL的日志。

事务安全

什么是事务安全?

事务:事务指的是一连串的数据写操作,操作之间是互相影响的

事务安全:保证一连串的操作都是成功的

银行账户:小王和小明

小王欠小明100,还钱

小王账号里,扣去100

小明账户里,增加100

事务操作流程

从某个指定点开始,将所有的操作都捆绑到一起,最后通过结果判断,要么都成功,要么都失败。

事务流程

1. 开启事务(事务起始点)

begin/start transaction;

从这个点开始,后面所有的操作,都是一起的,不是分开的,要么都成功,要么都失败

2. 事务操作,所有捆绑的事件

3. 事务结束

a) 成功:commit;提交

b) 失败:rollback;回滚(撤销)

事务原理

wps12AE.tmp

事务操作示例

1. 开启事务

wps12AF.tmp

2. 事务操作

操作1

wps12B0.tmp

操作2

wps12C0.tmp

3. 结束事务,先判断事务,选择如何结束

都成功:commit

wps12C1.tmp

不成功:rollback

wps12C2.tmp

事务操作特点

如果事务操作过程中断(意外),系统会自动判定事务处理失败

wps12D3.tmp

事务回滚点

事务在操作的过程中,可能有很多个节点,后续的节点必须依赖前面节点的成功而操作,但是有可能操作失败,需要先回到上一个成功的节点重新开始下一次操作,就需要在某个节点的时候设置回滚点,允许后面回到该点上。

语法
savepoint 回滚点名字;

wps12D4.tmp

回到回滚点

rollback to 回滚点名字

wps12E5.tmp

自动事务

系统默认的就是自动事务提交,本来每一个操作都需要用户进行确认操作。

查看自动提交

show variables like ‘autocommit%’;

wps12E6.tmp

关闭自动提交:

set autocommit = Off;

wps12F6.tmp

效果

wps12F7.tmp

注意:一般情况下事务都是 自动提交,除非特殊情况下(转账)才会使用事务,使用事务的时候手动使用。

事务特点

事务有4个特点:原子性,一致性,隔离性和永久性

事务特点ACID

原子性:Atomicity,事务是整体,从开始到结束,之间所有的操作都是一个整体,要么全部成功,要么全部失败。

一致性:consistency,事务前后数据完整性一致,数据在操作过程中没有影响到数据的变化,直到事务被提交,才改变数据。

持久性:Durability事务一旦提交,数据改变永久

隔离性:isolation,多用户并发互不干扰,相互隔离

事务条件

存储引擎是InnoDB

变量

在mysql中,变量分为两种:系统变量和自定义变量

系统变量

系统已经定义好的变量。

show variables;

wps12F8.tmp

查看系统变量

show variables; -- 查看所有

show variables like ‘pattern’; -- 查看部分

select @@变量名; -- 查看具体变量

wps1318.tmp

原文地址:https://www.cnblogs.com/lifushan/p/6493242.html