zoukankan      html  css  js  c++  java
  • 新手上路教程4_其他-视图-触发器

    1. 视图

    1. 含义

    1. 本身 是一个虚拟表,它的数据来自于表,通过执行动态生成
      1. 好处
      • 简化sql语句
      • 提高了sql 的重用性
      • 保护基表的数据,提高了安全性

    2. 创建

    create view 视图名
    as
    查询语句;
    

    3. 修改

    1. 方式一:

      create or replace view 视图名
      as
      查询语句;
      
    2. 方式二

    alter view 视图名
    as
    查询语句
    

    4. 删除

    drop view 视图1,视图2...;
    

    5. 查看

    desc 视图名;
    show create view 视图名;
    

    6. 使用

    1. 插入
      1. insert
    2. 修改
      1. update
    3. 删除
      1. delete
    4. 查看
      1. select

    7. 注意:

    1. 视图一般用于查询的,而不是更新的,所以具备以下的特点的视图都不容许更新
      1. 包含分组函数、group by、distinct、having、union、
      2. join
      3. 常量视图
      4. where后的子查询用到了from中的表
      5. 用到了不可更新的视图

    8. 视图和表的对比

    关键字 是否占用物理空间 使用
    视图 view 占用较小,只保存sql逻辑 一般用于查询
    table 保存实际的数据 增删改查

    触发器

    1. 如果你想要某条语句(或者某些语句) 在事件发生时自动执行。

    创建触发器

    1. 需要给出4条信息

      1. 唯一的触发器名(是每个表唯一)
      2. 触发器关联的表
      3. 触发器应该相应的活动(DELETE , INSERT 或 UPDATE);
      4. 触发器何时执行(处理之前或之后)
      create trigger newproduct after insert on products 
      for each row select 'Product added';
      执行上面这个,就是对每个成功插入都是显示 product added信息
      

      每个表最多支持6个出发器,增删改 的前后

      单一触发器不能与多个事件或多个表关联,所有你应该使用两个触发器去满足你的条件

    2. 触发器的失败 : 如果before 触发器失败,则mysql 将不执行请求的操作,此外 ,如果before 触发器 或 语句本身 失败,mysql 将不执行 after 触发器

    3. 删除触发器

      drop trigger netproduct;
      
      

      触发器不能更新和覆盖,,只能删除掉,然后重新创建

    4. 使用触发器

    create trigger neworder after insert on orders
    for each row select new.order_num;
    
    
    此代码 创建一个名为neworder的触发器,他按照after insert on orders 执行,在插入一个新订单到orders表时,mysql申城一个新订单号并保存到order_num中。
    

    管理实务处理

    1. 事务处理,可以用来维护数据库的完整性,他可以保证成批的mysql操作要么完全执行,要么完全不执行

    2. 关于事务处理 : 有 几个术语:

      1. 事务 : 指一组sql语句
      2. 回退 : 撤销执行sql语句的过程
      3. 提交 : 将未存储的sql语句 写入数据库表
      4. 保留点 : 指事务处理中设置的临时占位符,你可以对它发布回退(与回退事务不同)
    3. 控制事务处理

    4. start transaction 开始

    5. rollback 回退

    6. commit 提交

    7. savepoint delete1; 唯一名字保留点

    8. rollback to delete1 ; 返回保留点

  • 相关阅读:
    Unity实现Bezier曲线的移动(三点之间的Bezier曲线的移动)
    error CS2001: Source file `Assets/Pro Standard Assets/Image Based/SaveGameData.cs' could not be found 错误
    Some objects were not cleaned up when closing the scene. (Did you spawn new GameObjects from OnDestroy?) 错误
    Unity拖拽旋转2D物体
    Unity预编译
    Activity的四种launchMode
    接入华为海外SDK支付,按下home键,之后支付页面被销毁
    Android动态权限申请
    armeabi与armeabi-v7a的区别
    win7上帝模式
  • 原文地址:https://www.cnblogs.com/YJBlog/p/10659715.html
Copyright © 2011-2022 走看看