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


相关推荐

  • 解决VMware 15虚拟机桥接模式无法上网 问题

    解决VMware 15虚拟机桥接模式无法上网 问题详细描述解决VMware15虚拟机桥接模式无法上网问题步骤1:查看本地以太网属性是否安装VMwareBridgeProtocol控制面板>>网络和Internet>>网络连接>>以太网右键属性>>查看是否有安装VMwareBridgeProtocol共享网络给虚拟机(有些电脑不用)步骤2:查看VMware虚拟网络编辑器的VMne…

    2022年6月6日
    107
  • java全局变量和局部变量的区别_全局变量和局部变量的定义

    java全局变量和局部变量的区别_全局变量和局部变量的定义全局变量是一个运行时刻实体,它在程序的整个执行过程中都存在。全局变量生命周期为程序开始到程序结束。全局变量显示初始化时,或者未初始化时,在程序映像中有不同的分区:已初始化的全局变量是可执行模块的一部分。未初始化的全局变量则不是可执行模块的一部分,只有当定义它们的程序被调用时(即执行时),才分配空间,声明或定义时并不分配。未初始化的全局变量在运行时被初始化为0或null。

    2022年8月21日
    7
  • 计算机复试面试题总结「建议收藏」

    计算机复试面试题总结「建议收藏」面试问题之编程语言1。C++的特点是什么?封装,继承,多态。支持面向对象和面向过程的开发。2.C++的异常处理机制?抛出异常和捕捉异常进行处理。(实际开发)3.c和c++,java的区别?c是纯过程,c++是对象加过程,java是纯面向对象的4.纯虚函数?被virtual修饰的成员函数,再基类不能实现,而他的实现放到派生类中实现。5.什么是内存泄漏?没有de…

    2022年6月4日
    40
  • 太极图正确画法_来氏太极图的画法及六行太极图的演示

    太极图正确画法_来氏太极图的画法及六行太极图的演示本来,我已打算停中发文,但是这一篇涉及到我一个重要的思想,这就是我对明代来知德的“来氏太极图”有了重要的理解,我根据它形成了我的六行太极理论,于是我还是决定把它公布出来。我尝试很多办法把水火金木土风的六行的元素融入到太极图中,它既要能符合太极的原理,又要能符合六行的原理,但又要使用它最简单化,可始终无果,有一天,我看到了明代理学家来知德的《来瞿唐先生圆图》,忽然恍然大悟,来瞿唐先生的“来氏太极图”…

    2022年5月27日
    61
  • 适配器的作用[通俗易懂]

    适配器的作用[通俗易懂]首先我们从一般的概念上讨论一下计算机是怎样连接到局域网上的。计算机与外界局域网的连接是通过通信适配器(adapter)。适配器本来是在主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。这种接口板又称为网络接口NIC(NetworkInterfaceCard)或简称为“网卡”。由于较新的计算机主板上已经嵌入了这种适配器,不使用单独的网卡了,因此…

    2022年6月12日
    33
  • 学习shiro笔记

    学习shiro笔记

    2021年7月12日
    74

发表回复

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

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