MySQL学习笔记 4 -触发器、MySQL视图

  1. MySQL触发器
    1. 创建只有一个执行语句的触发器基本形式:
      CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件
      ON 表名 FOR EACH ROW 执行语句
    2. 创建具有多个执行语句的触发器
      基本形式:
      CREATE TRIGER 触发器名称 BEFORE | AFTER 触发事件
      ON 表名 FOR EACH ROW
      BEGIN
      执行语句列表
      END
    3. 注意:在MySQL中,一个表在相同的时间和相同的触发时间只能创建一个触发器,如触发事件INSERT,触发时间AFTER的触发器只能有一个,但是可以定义BEFORE的触发器。
  2. 查看触发器
    1. SHOW TRIGGERS;
    2. SELECT * FROM information_schema.triggers;
      或者:SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='触发器名称';
      information_schema是MySQL中默认存在的库,用于记录触发器信息的数据表。
  3. 应用触发器
    触发器中不能包含START TRANSCATION、COMMIT或ROLLBACK等关键词,也不能包含CALL语句。
  4. 删除触发器
    DROP TRIGGER 触发器名称


  1. MySQL视图
    1. 视图是一个虚表,是从数据库中一个或多个表中导出来的表,其内容由查询定义。数据库中只存放了视图的定义,没有存放视图中的数据。视图中的数据是依赖于原来的表中的数据的。
    2. 视图是存储在数据库中的查询的sql语句,它主要出于安全和可使复杂的查询易于理解和 使用。
    3. 视图作用:
      1. 简单性
      2. 安全性
      3. 逻辑数据独立性
  2. 创建视图
    1. 查看用户是否具有创建视图的权限
       select select_priv,create_view_priv from mysql.user where user='用户名';

    2. 创建视图
      CREATE [ALGORITHM={UNDEFINDE | MERGE | TEMPTABLE}]
                    VIEW 视图名 [(属性清单)]
                    AS SELECT 语句
                    [WITH [CASCADED | LOCAL] CHECK OPTION];
    3. 创建视图注意事项
      1. 有创建视图的权限
      2. select语句不能包含from子句中的子查询;
      3. select语句不能引用系统或用户变量
      4. select语句不能引用预处理语句参数
      5. 在存储子程序内,定义不能引用子程序参数或局部变量
      6. 在定义中引用的表或视图必须存在。
      7. 在定义中不能引用temporary表,不能创建temporary视图;
      8. 视图定义中命名的表必须存在
      9. 不能将触发器与视图关联在一起
      10. 在视图定义中允许使用order by,但是,如果从特定视图进行选择,而该视图使用了具有自己order by的语句,它将被忽略
  3. 查看视图
    1. DESCRIBE/DESC 视图名;
    2. SHOW TABLE STATUS LIKE ‘视图名’;
  4. 修改视图
    1. CREATE OR REPLACE [ALGORITHM={UNDEFINDE | MERGE | TEMPTABLE}]
      VIEW 视图 [(属性清单)]
      AS SELECT 语句
      [WITH [CASCADED | LOCAL] CHECK OPTION]
    2. ALTER
  5. 更新视图
    1. 视图中的数据虽然可以更新,但是有很多的限制。一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图更新数据。
  6. 删除视图
    1. DROP VIEW IF EXISTS <视图名> [RESTRICT | CASCADE]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值