相同点:存储过程和函数都是为了可重复的执行操作数据库的sql语句的集合。
1)存储过程和函数都是一次编译,就会被缓存起来,下次使用就直接命中已经编译好的sql语句, 不需要重复使用。减少网络交互,减少网络访问流量。
不同点:标识符不同,函数的标识符是function,存储过程是proceduce。
1)函数中有返回值,且必须有返回值,而过程没有返回值,但是可以通过设置参数类型(in,out) 来实现多个参数 或者返回值。
2)存储函数使用select调用,存储过程需要使用call调用。
3)select语句可以在存储过程中调用,但是除了select..into之外的select语句都不能在函数中使用。
4)通过in out参数,过程相关函数更加灵活,可以返回多个结果。