美文网首页
2019-07-15

2019-07-15

作者: CC__XX | 来源:发表于2019-07-15 19:25 被阅读0次

    视图

    定义:是一种有结构,但是没有结果的虚拟表

    创建视图

    基本语法:create view 视图名字 as select 语句;
    创建单表视图:基表只有一个
    创建多表视图:基表来源至少两个

    查看视图

    show table [like] /desc 视图名 /show create table 视图名;

    修改视图

    alter view 视图名字 as 新的select 语句、

    删除视图

    drop view 视图名字

    新增数据

    多表视图不能新增数据
    可以向单表视图插入数据,但是视图中包含的字段必须有基表中所有不能为空、或没有默认值的字段
    视图是可以向基表插入数据的

    删除数据

    多表视图不能删除数据
    单表视图可以删除数据

    更新数据

    更新限制:with check option

    视图算法

    定义:系统对视图以及外部查询视图的select语句的一种解析方式
    视图的三种算法
    1.undefined 未定义(默认的)
    2.tempatable 临时算法表(效率低)
    3。merge:合并算法(效率高)

    算法指定

    在创建视图的时候create algorithm=指定算法 view 视图名字 as select语句;

    事务

    事务操作分两种:自动事务(默认)、手动事务

    手动事务的操作流程

    开启事务:start transaction;

    进行事务操作

    关闭事务

    提交事务:commit; 同步数据表,表示操 作成功
    回滚事务:rollback; 直接清空日志表,表示操作失败

    事务操作原理:事务开启之后,所有的操作都会临时保存到事务日志,而事务日志只有在得到commit命令才会同步到数据表,其他任何情况都会清空,比如rollback、断电、断开连接

    回滚点

    设置回滚点语法:savepoint 回滚点名字;
    回到回滚点语法:rollback to 回滚点名字;

    自动事务处理

    show variables like 'autocommit';
    关闭自动提交:set autocommit=off/0;

    事务的四大特性:ACID

    A:Atomic,原子性
    C:Consistency,一致性
    I:Isolation,隔离性
    D:Durability,持久性
    锁机制
    下面练习一个小的存款需求

    --创建一个账户表
    create table my_account(
    id int primary key auto_increment,
    number char(16) not null unique comment '
    账户',
    name varchar(20) not null,
    money decimal(10,2) default 0.0
    comment'账户余额');
    
    --插入数据
    insert into my_account values(
    null ,'0000000000000000001' ,'张三','1000'),(null ,'0000000000000000002' ,'李四','2000');
    --张三给李四转1000
    update my_account set money=money - 1000 where id=1;
    
    --事务安全
    --开启事务
    start transaction;
    --事务操作 1,李四钱减少
    update my_account set money = money-1000 where id = 2;
    
    
    --事务操作 2,张三增加
    update my_account set money = money+1000 where id = 1;
    
    
    --提交事务
    commit;
    --回滚点操作
    start transaction ;
    
    --车处理事务  张三发工资了
    update my_account set money = money+1000 where id = 1;
    --回滚到回滚点
    rollback to ;
    --银行扣税
    update my_account set money = money-1000*0.03 where id = 2;--错误
    --错误
    
    --回滚到回滚点
    update my_account set money=money -1000*0.05 where id =1;
    
    
    --查看结果
    select * from my_account ;
    
    
    --提交结果
    commit;
    
    --显示系统你变量'autocommit'(‘模糊查询’)
    
    show variables like 'autocommit';
    
    
    --关闭自动提交:
    set autocommit=0;
    
    
    
    
    --锁机制
    start transaction;
    update my_account set money=money +500 where nmae = '张三';
    
    update my_account set money=money +500 where id = 2;
    --解锁 提交或者回滚  如果不等解锁 ,会等待一会时间不长
    
    --事务的操作是针对数据的,不针对结构
    
    
    
    

    相关文章

      网友评论

          本文标题:2019-07-15

          本文链接:https://www.haomeiwen.com/subject/aqeokctx.html