mysql存储过程菜鸟教程_mysql存储过程实例详解

mysql存储过程菜鸟教程_mysql存储过程实例详解详细实例全⾯解析SQL存储过程存储过程(StoredProcedure),是⼀组为了完成特定功能的SQL语句,类似⼀门程序设计语⾔,也包括了数据类、流程控制、输⼊和输出和它⾃⼰的函数库。存储过程可以说是⼀个记录集,它是由⼀些T-SQL语句组成的代码块,这些T-SQL语句代码像⼀个⽅法⼀样实现⼀些功能(对单表或多表的增删改查),然后再给这个代码块取⼀个名字,在⽤到这个功能的时候调⽤他就⾏了。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

详细实例全⾯解析SQL存储过程

存储过程(Stored Procedure),是⼀组为了完成特定功能的SQL 语句,类似⼀门程序设计

语⾔,也包括了数据类 、流程控制、输⼊和输出和它⾃⼰的函数库。存储过程可以

说是⼀个记录集,它是由⼀些T-SQL语句组成的代码块,这些T-SQL语句代码像⼀个

⽅法⼀样实现⼀些功能 (对单表或多表的增删改查),然后再给这个代码块取⼀个名

字,在⽤到这个功能的时候调⽤他就⾏了。不过SQL存储过程对于⼀些初学者来说还

是⽐较抽象难理解的,因此本⽂将由浅⾄深地剖析SQL存储过程,帮助你学习它。

存储过程的优点

1.存储过程只在创造时进⾏编译,以后每次执⾏存储过程都不需再重新编译,⽽⼀般

SQL语句每执⾏⼀次就编译⼀次,所以使⽤存储过程可提⾼数据库执⾏速度,效率要⽐

T-SQL语句⾼。

2.当对数据库进⾏复杂操作时,可将此复杂操作⽤存储过程封装起来与数据库提供的

事务处理结合⼀起使⽤。

3、⼀个存储过程在程序在⽹络中交互时可以替代⼤堆的T-SQL语句,所以也能降低⽹

络的通信量,提⾼通信速率。

4 .存储过程可以重复使⽤,可减少数据库开发⼈员的⼯作量。

5.安全性⾼,可设定只有某些⽤户才具有对指定存储过程的使⽤权

存储过程基本语法

创建存储过程

CREATE PROC [ EDURE ] procedure_name [ ; number ]

[ { @parameter data_type }

[ ARYING ] [ = default ] [ OUTPUT ]

] [ ,…n ]

[ WITH

{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]

[ FOR REPLICATION ]

AS sql_statement [ …n ]

调⽤存储过程

EXECUTE Procedure_name ” –存储过程如果有参数,后⾯加参数格式为:@参数名

删除存储过程

drop procedure procedure_name –在存储过程中 调⽤另外⼀个存储过程,

创建存储过程的参数

1.procedure_name :存储过程的名称,在前⾯加#为局部临时存储过程,加##为全局

临时存储过程。

2.; number :是可选的整数,⽤来对同名的过程分组,以便⽤⼀条 DROP

PROCEDURE 语句即可将同组的过程⼀起除去。例如,名为 orders 的应⽤程序使⽤的

过程可以命名为 order roc;1、order roc;2 等。DROP PROCEDURE order roc 语句将除

去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在

rocedure_name 前后使⽤适当的定界符。

3.@parameter :存储过程的参数。可以有⼀个或多个。⽤户必须在执⾏过程时提供每

个所声明参数的值 (除⾮定义了该参数的默认值)。存储过程最多可以有 2.100 个参

数。

使⽤ @ 符号作为第⼀个字符来指定参数名称。参数名称必须符合标识符的规则。每

个过程的参数仅⽤于该过程本⾝;相同的参数名称可以⽤在其它过程中。默认情况

下,参数只能代替常量,⽽不能⽤于代替表名、列名或其它数据库对象的名称。有关

更多信息,请参见 EXECUTE 。

4.data_type :参数的数据类 。所有数据类 (包括 text 、ntext 和 image )均可以⽤

作存储过程的参数。不过,cursor 数据类 只能⽤于 OUTPUT 参数。如果指定的数据

类 为 cursor ,也必须同时指定 VARYING 和 OUTPUT 关键字。有关 SQL Server 提

供的数据类 及其语法的更多信息,请参见数据类 。

说明 对于可以是 cursor 数据类 的输出参数,没有最⼤数⽬的限制。

5.VARYI G :指定作为输出参数⽀持的结果集 (由存储过程动态构造,内容可以变

化)。仅适⽤于游标参数。

6.default : 参数的默认值。如果定义了默认值,不必指定该参数的值即可执⾏过程。

默认值必须是常量或 NULL 。如果过程将对该参数使⽤ LIKE 关键字,那么默认值中

可以包含通配符 (%、_ 、[] 和 [^] )。

7.OUTPUT :表明参数是返回参数。该选项的值可以返回给 EXEC[UTE] 。使⽤

OUTPUT 参数可将信息返回给调⽤过程。Text

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185534.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mysql主从备份和SQL语句的备份

    MySQL服务器的主从配置,本来是一件很简单的事情,无奈不是从零开始,总是在别人已经安装好的mysql服务器之上,这就会牵扯到,mysql的版本,启动文件,等一些问题。http://www.cnb

    2021年12月23日
    50
  • Matlab之正态拟合直方图绘制函数histfit

    Matlab之正态拟合直方图绘制函数histfit目录一、功能二、语法1.histfit(data)2.histfit(data,nbins)3.histfit(data,nbins,dist)4.histfit(ax,___)5.h=histfit(___)三、示例1.具有正态拟合分布的直方图2.给定bin数的直方图3.具有指定分布拟合的直方图4.具有核平滑函数拟合的直方图一、功能绘制正态拟合直方图二、语法1.histfit(data)绘制data中的值的直方图…

    2022年10月18日
    2
  • 图遍历算法的应用

    图遍历算法的应用1.判断图的连通性图的遍历算法可以用来判断图的连通性。如果一个无向图是联通的,如果无向图是联通的,则从任一节点出发,仅需一次遍历就可以访问图中的所有节点。如果无向图是非联通的,则从某一节点出发,一次遍历仅能访问到该顶点所在联通分量的所有顶点,而对于图中其他联通分量的顶点,则无法通过这次遍历访问。对于有向图来说,若从初始点到图中的每个顶点都有路径,则能够访问到图中的所有顶点,否则不能访问到所有顶…

    2022年5月4日
    50
  • 欢聚时代一面

    欢聚时代一面

    2022年1月24日
    55
  • 网站目录权限设置

    网站目录权限设置

    2021年8月31日
    114
  • Python Lambda匿名函数示例

    Python Lambda匿名函数示例本文转自https://www.freeaihub.com/article/lambda-in-python.html,该页可在线互动学习匿名函数在本示例中,我们将看到如何在Python中使用Lam

    2022年7月5日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号