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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10工作站激活码(ID00391-80000-00001-AA561破解方法「建议收藏」

    win10工作站激活码(ID00391-80000-00001-AA561破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    111
  • html炫酷动态时钟代码,HTML5动态时钟代码

    html炫酷动态时钟代码,HTML5动态时钟代码HTML5动态时钟代码#clock{stroke:black;stroke-linecap:square;fill:#fcfcfc;width:500px;height:500px;}#face{stroke-width:2px;}#ticks{stroke-width:1px;}#hour{stroke-width:3px;stroke:#00…

    2022年6月28日
    34
  • java中clone的用法_java clone是浅拷贝吗

    java中clone的用法_java clone是浅拷贝吗一.Cloneable的用途Cloneable和Serializable一样都是标记型接口,它们内部都没有方法和属性,implementsCloneable表示该对象能被克隆,能使用Object.clone()方法。如果没有implementsCloneable的类调用Object.clone()方法就会抛出CloneNotSupportedException。二.克隆的分类(1)浅克隆(s

    2022年10月14日
    4
  • 腾讯流量主广告点击一次多少钱_好赞移动科技主要做什么的

    腾讯流量主广告点击一次多少钱_好赞移动科技主要做什么的中国的电信市场已经成为全球规模最大的电信市场,11亿左右的客户规模、上万种的业务模式,让国外电信运营商羡慕不已,但与此同时,国内运营商也面临巨大的挑战,特别是随着科技的进步,我们迎来了移动互联网时代,无处不在的网络已经渗透到各个领域。2月27日,工信部正式向中国联通和中国电信颁发LTEFDD牌照,在中国移动凭借TD-LTE牌照抢跑4G网络14个月、4G客户突破1亿大关时,中国市场全面进入4G竞逐

    2025年9月6日
    5
  • MATLAB语音信号处理系统GUI

    MATLAB语音信号处理系统GUI基于MATLAB的语音信号处理【摘 要】Matlab语音信号处理是指利用matlab软件对音频信号进行读取,并对音频信号进行采样分析及离散傅里叶变换,以方便对其在频域上进行调制滤波等相关的操作。本次实验在提取音频信号后会对该信号使用在MATLAB软件中设计的滤波器进行滤波,并观察其效果,验证滤波器是否可行。本次使用了MATLAB软件,综合运用GUI界面设计、各种函数调用等来实现音频信号的傅里叶变…

    2022年5月25日
    95
  • 30套JSP网站源代码合集

    30套JSP网站源代码合集JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。我收集了一些JSP开发的网站源代码,从实践中学习,希望对大家有用。资料名称下

    2022年7月2日
    24

发表回复

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

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