一点分享Mysq高级特性存储过程,小

治疗白癜风比较好方法 http://m.39.net/pf/a_4591206.html

此Mysql的学习从最早的3天上手,到近几期的高级特性,逐步靠近实际工作的应用。本文也终于来到ETL工作的门口了(当然有很多其他ETL模式),是非常有意思的工作。

存储过程与昨天分享的的Mysql自定义函数相似,文章依然分三部分:存储过程讲解、实战演示、总结。

一、存储过程

1、增删改查

表的数据有增删改查,自定义函数有增删改查,存储过程也同样有增删改查。

1.1增,新建存储过程

1.2查列表,全部存储过程

1.3查定义,存储过程的完整代码内容

1.4删

--通常会加ifexists,保持这个习惯dropprocedureifexistsp_rows;

1.5改

能修改一些属性,但不支持修改body代码,要先删除再新建。

2、属性

暂不影响,后续文章再分享。

3、参数和变量

只是有参的参数与函数的有点差异特点,定义了3种参数的类型,参考经典的《菜鸟教程》,如下:

3.1in

仅输入型参数in,像自定义函数的参数。在body中引用参数。参数前面加上in关键词。

3.2out

3.3inout

参数值既要传入存储过程中,又要运算处理后返回出来新值(通常会变化,不然直接就用in类型就成了)。

比如2个存储过程共用一个类似于全局唯一自增id参数,那么这个id既要传入当前值又要返回更新后新值。

再比如A

B两个存储过程模拟A

B两人聊天,那A输入B发来的信息且要输出给B的回复信息,再传入B。

二、实战演示

1、封装

把常用的sql封装在存储过程中,简单调用即可,不需要每次复制sql再执行。

2、ETL简单示例

每天都要执行一遍的sql统计,直接把这段代码封装为存储过程,手动调用或定时调用执行一下即可。如下的示例,把创建表结构、统计数据、入库封装在一个存储过程中,只需执行一下,非常方便。

三、总结

(1)存储过程也很好学习,与自定义函数非常相似,方便学习,所以再次印证之前说的sql学习曲线是很平缓的。

(2)存储过程,把一连串的步骤任务,封装在一起,复杂的逻辑也隐藏起来,方便外层调度管理、任务调度。

(3)ETL没有想象的复杂,尤其是初学者用Mysql来实现,会更有感觉,因为不需要先上来了解一大堆工具,笔者分享Mysql系列数据分析是一条很平缓、很实用的路径,小而美、短平快。

若对您有帮助,请


转载请注明:http://www.aierlanlan.com/rzdk/4393.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了