mysql中的存储过程与存储函数

3/7/2017来源:SQL技巧人气:1652

SQL语句在执行时要先编译,然后再能被执行。在大型的数据库中,为了提高效率,将为了完成特定功能的SQL语句集进行编译优化后,存储在数据库服务器中,用户指定存储过程的名字来调用执行。

创建 MySQL 存储过程的简单语法为: create PRocedure 存储过程名字() (    [in|out|inout] 参数 datatype ) begin    MySQL 语句; end;

使用存储过程可以增强SQL语句的功能和灵活性,由于可以用流程控制语句编写存储过程,有很强的灵活性,因此可以完成复杂的判断和运算,并且可以保证数据的安全性和完整性。同时,存储过程可以使没有权限的用户在控制之下间接地存储数据库,也保证了数据的安全、

存储过程与存储函数的区别:

(1)存储过程一般是作为一个独立的部分来执行,存储函数可以作为查询语句的一个部分来调用,由于函数可以返回一个对象,因此可以在查询语句中位于FROM关键字后面。

(2)一般而言,存储过程是实现的功能较复杂,而函数实现的功能针对性较强。

(3)函数需要括号包住输入的参数,且只能返回一个对象或者表对象,而存储过程可以返回多个参数。

(4)函数可以嵌入在SQL中使用,可以在select语句中使用,存储过程不可以。

(5)函数不能直接操作实体表,只能操作内建表。

(6)存储过程在创建时即在服务器上进行了编译,其执行速度比函数快。