zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    VMware虚拟机安装详细教程
    NLP知识点汇总(一)
    自动下载网页上的zip文件并自动解压
    django教程
    redis实现缓存可能带来的问题及总结
    使用github--stanfordnlp--glove训练自己的数据词向量
    mount.nfs: Stale file handle的解决方法
    集智学院 “Deep X:Deep Learning with Deep Knowledge”的公开讲座---总结
    字符串匹配算法总结 (一对一匹配,多模式匹配)
    java sql语句 like%?%报错的问题
  • 原文地址:https://www.cnblogs.com/lifushan/p/6493242.html
Copyright © 2011-2022 走看看