美文网首页
Mysql存储过程Procedure

Mysql存储过程Procedure

作者: 刘小白DOER | 来源:发表于2020-09-30 21:02 被阅读0次

        最近在写数据库sql语句,在客户端查询数据库,sql命令较复杂时感觉使用存储过程Procedure更加方便可靠。先看看定义:存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

        利用phpmyadmin可视化工具建立存储过程Procedure是十分方便的。下面是循环建立一个1000万行的测试数据,在命令行执行call proccard;既可以创建1000万测试数据,但是建立时间可能几分钟。

    1000万测试数据的存储过程

        在命令行,可以用create procedure函数来建立。下面是一个查询sql命令放置于procedure中,在客户端直接执行call testb;就可以完成查询操作,当然这里面可以放置一些复杂(数量、逻辑)的sql命令。

     命令行创建procedure

             Procedure可以完成SQL 语言层面的代码封装与重用。避免开发人员重复的编写相同的SQL语句,可以隐藏执行逻辑,节省sql语句的网络流量,编译好的语句可以提高效率。mysql中的函数自定义函数function也可以定义一些SQL语句的集合,但与存储过程有些区别。具体可以参照文-MySql存储过程与函数详解 。

        1、存储过程实现的功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。

        2、存储过程一般是作为一个独立的部分来执行(CALL  执行),而函数可以作为查询语句的一个部分来调用(SELECT调用)。

        3、对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。

        4、存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类。

        5、SQL语句中不可用存储过程,而可以使用函数。

    相关文章

      网友评论

          本文标题:Mysql存储过程Procedure

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