我是靠谱客的博主 烂漫发带,最近开发中收集的这篇文章主要介绍mysql存储过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

存储过程简介
存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数的值

MySQL 5.0 版本开始支持存储过程。

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。

存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

 存储过程的优缺点
优点:

1) 封装性

存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句,并且数据库专业人员可以随时对存储过程进行修改,而不会影响到调用它的应用程序源代码。

2) 可增强 SQL 语句的功能和灵活性

存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

3) 可减少网络流量

由于存储过程是在服务器端运行的,且执行速度快,因此当客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而可降低网络负载。

4) 高性能

存储过程执行一次后,产生的二进制代码就驻留在缓冲区,在以后的调用中,只需要从缓冲区中执行二进制代码即可,从而提高了系统的效率和性能。

5) 提高数据库的安全性和数据的完整性

使用存储过程可以完成所有数据库操作,并且可以通过编程的方式控制数据库信息访问的权限。

此数据来自知乎大佬 —— Mysql存储过程的详细讲解 - 知乎 (zhihu.com)

缺点:

存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
存储过程的性能调校与撰写,受限于各种数据库系统。

创建存储过程

  1. CREATE PROCEDURE 过程名(过程参数)

  2.  [特性]

  3.  存储过程体

常用特性有:

LANGUAGE SQL:存储过程语言,默认值为 SQL
CONTAINS SQL:表示子程序不包含读或写数据的语句
NOT SQL:表示子程序不包含 SQL 语句
READDS SQL DATA:表示子程序包含读数据的语句,但不包含写的语句
MODIFIES SQL DATA:表示子程序包含写数据的语句
如果 2~5 这些特征没有明确指定,默认值为:CONTAINS SQL

SQL SECURITY { DEFINER | INVOKER }:用来指定存储过程的执行权限,默认值为 DEFINER

DEFINER:使用创建者的权限执行
INVOKER:使用执行者的权限执行
 

  1.  DELIMITER //    声明语句分隔符

  2.  CREATE PROCEDURE student(过程参数)   

  3.  BEGIN   过程提的标识

  4.     SELECT * FROM student;

  5.  END

  6.  DELIMITER ;

调用存储过程

CALL 存储过程名(参数列表);

存储过程中的变量

 DECLARE 变量名 数据类型 [DEFAULT 值]

查看存储过程的状态

SHOW PROCEDURE STATUS;

查看存储过程的创建代码

SHOW CREATE PROCEDURE 存储过程名;

修改存储过程

ALTER PROCEDURE 存储过程名 [特性 ……]

删除存储过程

DROP PROCEDURE 存储过程名;


本文为CSDN博主「小简(JanYork)」的原创文章,
原文链接:https://blog.csdn.net/qq_60750453/article/details/124716666

最后

以上就是烂漫发带为你收集整理的mysql存储过程的全部内容,希望文章能够帮你解决mysql存储过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部