第五章 事务,视图,索引,备份和恢复

一.事务

  1.事务是指将一系列操作捆绑为一个整体进行统一管理

  2.1什么是事务:

      默认条件下,每单条SQL就是一个事务

  2.2事务分为:

  (1)原子性:事务中的所有元素都必须作为一个整体来提交或回滚,如果事务中任何元素失败,则整个事务失败。

  (2)一致性:事务执行完毕后,数据的状态是一致的。

  (3)隔离性:两个事务之间互不影响。

  (4)永久性:事务执行完毕后,对数据都是永久影响的。

3.事务操作的关键字

  1.开启/关闭 自动提交:set autocommit=0/1

  2.开始事务:begin/start transaction

  3.提交事务:commit

  4.回滚事务:rollback

4.事务村塾过程的例子:

delimiter $$

create procedure usp_transfer()

  begin

  declare t_error integer default 0;  ##语法错误 from 违反了约束

  ##continue继续 hanlder 执行 并且对 t_error重载赋值为1

  declare continue handler for sqlexception set t_error=1;

  set autocommit=0;

    start transction;

    update bank set balance=balance-100 where cid=1;

    update bank set balance=balance+100 where cid=2;

    if t_error>0 then

      rolllback;
    else
      commit;
    end if;
  set autocommit=1;

  end $$

delmiter ;

call test_sp800()

二.视图

  1.1:就是一张虚拟表,本质上存储的是一对SQL的集合

  1.2:创建视图:

    

create view VW_stulist(VW_视图的功能)
as
sql语句

 

 注:当多表中有同名列的时候,在视图这个虚拟表中,只能有一列。手工指定该列是哪个表的。

   1.3:删除视图:

    

drop view 视图名
drop table 
drop database
drop index
drop constraint

 

 注:drop是删除结构,而delete是删除数据

   1.4:视图注意事项:

    (1)视图可以查询多表数据 

    (2)视图可以嵌套
    (3)update,insert,delete不能封装成视图内容,通过图形化界面可以操作数据(操作视图数据,影响的是基本表)。
    (4)删除视图数据的时候,有一定的限定,数据结果来源于多表的时候,不能删除

 

 三.索引

  1.1:是一种有效组合数据的方式,为了快速查找指定记录

  1.2:索引分类:

    普通索引

    唯一索引

    主键索引

    复合索引

    全文索引 场景:一篇文章保存字段 content:1万个字   mysql  like

    空间索引

 

  1.3建立索引的原则
    (1)在列基数比较少的列上,不适合创建索引

    (2)在不经常使用的列 上,建立索引没有意义

    (3)在频繁搜索的列上,适合建立索引

    

四.授权

  1.1创建用户

create user 用户名 identified by '密码'

 

   1.2:分配权限:

grant 权限名称  update,delete,insert   on  数据库.表名  to 用户名

 

posted @ 2018-02-24 15:12  舞凍  Views(91)  Comments(0Edit  收藏  举报