网站首页 文章专栏 Mysql-视图、触发器、存储过程
Mysql-视图、触发器、存储过程
编辑时间:2020-07-31 16:46 作者:小铨 浏览量:207

mysql

1.视图:实现封装好的查询语句 join; 
  适用于api调用
  
  example:
  
    create VIEW user_view as select id,user_name,email from `user`;

2.存储过程:主动执行,实现封装好函数,类似于php函数(业务逻辑),保证数据安全,  oa和erp用的比较多
  funciton selcet($key){
    ....
  }
  example:
      CREATE PROCEDURE cunchu()
        BEGIN
        SELECT * from user WHERE user_id = 100002;
      END;
    
      CALL cunchu();
  优点:跳过了平时程序需要走的sql预编译,直接mysql编译好了
  缺点:第一个缺点就是移植性差。因为存储过程是和数据库绑定的,如 果我们要更换数据库之类的操作,可能很多地方需要改动。
       第二个缺点就是修改不方便。因为对于存储过程而言,我们并不 能特别有效的调试,它的一些 bug 可能发现的更晚一些,增加了应 用的危险性。
       第三个缺点就是优势不明显和赘余功能。对于小型 web 应用来说, 如果我们使用语句缓存,发现编译 SQL 的开销并不大,但是使用存 储过程却需要检查权限一类的开销,这些赘余功能也会在一定程度 上拖累性能。
 
3.触发器:自动执行,事件 (用的很少)   
    触发器  类似于 框架 事件
    create trigger [触发器名称] [触发器的执行时间] [执行的动作点] on [表名] for each row [函数 或者动作]
    
    触发器的执行时间 :before, after
    执行的动作点:insert, update, delete
    函数:begin end;
    或者动作:update ,insert
    
    exapmple:
        CREATE TRIGGER
            user_tirgger_before1
        BEFORE INSERT ON
        	user`
        FOR EACH ROW
        BEGIN
        	  INSERT INTO userbase ( userbase_id )VALUES ( 1);
        END;

4.物化视图:中间统计表,是物理视图,真实的一张表。通常物化视图包括:视图+触发器或者视图+存储过程。



    出自:铨程互动

    地址:www.wuhequan.cn

    转载请注明出处!


来说两句吧
最新评论
0.203096s