温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Mysql中存储过程和函数的区别是什么

发布时间:2020-12-03 10:01:49 来源:亿速云 阅读:228 作者:小新 栏目:MySQL数据库

这篇文章主要介绍了Mysql中存储过程和函数的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

数据库设计三范式:

第一范式:数据库表的每一列都是不可分割的原子数据项,即列不可拆分。第二范式:建立在第一范式的基础上,要求数据库表中的每个实例或记录必须是可以唯一被区分的,即唯一标识。第三范式:建立在第二范式的基础上,任何非主属性不依赖与其他非主属性,即引用主键。(相关推荐:MySQL教程)

视图

视图是虚拟表,并不储存数据,只包含定义时的语句的动态数据。

create view view_name as sql查询语句

存储过程

一条或多条sql语句集合,其优点为(浓缩:简单/安全/高性能):
 1、存储过程能实现较快的执行速度
 2、存储过程允许标准组件是编程。
 3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
 4、存储过程可被作为一种安全机制来充分利用。
 5、存储过程能够减少网络流量

delimiter 分隔符
create procedure|proc proc_name()
begin
    sql语句
end 分隔符
delimiter ;    --还原分隔符,为了不影响后面的语句的使用
默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外)

存储过程和函数的区别?

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

触发器

在对表数据进行变动的时候进行具体的操作,有六种,分别为增删改的前后操作。

create trigger trigger_name 
ALTER|BEFORE select|update|delete
on 表
for each row
trigger_stmt

重点:

只有表才支持触发器,视图和临时表都不支持触发器不支持更新和覆盖,修改必须先删除然后创建

日志

Mysql主要有四种日志文件:

错误日志:记录启动,运行或者停止 mysql 时出现的问题;
查询日志:记录所有msyql的活动
二进制日志:记录更新过数据的所有语句
缓慢查询日志:记录查询缓慢的任何查询

感谢你能够认真阅读完这篇文章,希望小编分享Mysql中存储过程和函数的区别是什么内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI