MySQL存储过程浅析

存储过程

定义:

存储过程是一组为了完成特定功能的SQL语句,是由一些SQL语句组成的代码块,这些代码块像方法一样实现一些功能(对单表或多表的增删改查),然后给代码块起一个名字,用到的时候再调用它。存储过程具有输入参数、输出参数和输入/输出参数,可以在数据库服务器上执行。

优点:

  1. 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度,效率要比T-SQL语句高。
  2. 当对数据库进行复杂操作时,可以用存储过程把这些复杂操作封装起来,与数据库提供的事务处理结合一起使用。
  3. 一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
  4. 存储过程可以重复使用,可减少数据库开发人员的工作量。
  5. 安全性高,可设定只有某些用户才具有对指定存储过程的使用权。

创建存储过程

声明分隔符和存储过程的基本语法:

在 MySQL 中,创建一个包含多个 SQL 语句的存储过程时,通常需要声明一个新的分隔符,因为默认的分隔符是 ,而存储过程的主体部分可能包含多个 ;,会导致解析问题。
通过使用 DELIMITER 命令,可以更改分隔符,以便 MySQL 能正确地识别存储过程的开始和结束。
设置新的分隔符(例如 $$),然后在存储过程结束后恢复默认分隔符 ;

DELEMITER $$CREATE PROCEDURE procedure_name (parameters)
BEGIN-- 过程体
EDN $$DELIMITER ;
/* 参数类型
IN:输入参数,调用时传入。
OUT:输出参数,存储过程执行后传出。
INOUT:既是输入参数又是输出参数  */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle体系结构初探:数据库启动与停止

往期内容 参数管理 控制文件添加 启动 在启动Oracle数据库时,我们一般会使用如下命令: startup 虽然命令只有一个,但其中却是经历了3个阶段,从下面执行 startup 命令返回也可以看出来。 总结为3个阶段: nomount&…

ubuntu下python导入.so库

ubuntu下python导入.so库 文章目录 ubuntu下python导入.so库1. 什么是.so文件?2. 使用python脚本编译.so库文件Reference 最近遇到了python导入c编译的 .so库的问题,发觉挺有意思,于是写下这篇blog以作记录。 1. 什么是.so文件? …

【简单介绍下深度神经网络】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

句柄降权绕过CallBacks检查

看到前辈们相关的文章,不太明白什么是句柄降权,于是专门去学习一下,过程有一点波折。 句柄降权 什么是句柄 当一个进程利用名称来创建或打开一个对象时,将获得一个句柄,该句柄指向所创建或打开的对象。以后&#xf…

什么是DNS缓存投毒攻击,有什么防护措施

随着企业组织数字化步伐的加快,域名系统(DNS)作为互联网基础设施的关键组成部分,其安全性愈发受到重视。然而,近年来频繁发生的针对DNS的攻击事件,已经成为企业组织数字化发展中的一个严重问题。而在目前各…

go string 实现

在go中string是不可变的,这意味着对string发生改变的操作实际上都是通过分配新的string去实现的 在string内存分配上,对于小对象分配到栈,大对象分配到堆中 string在go中的结构其实很简单,就是一个指向实际数据的指针以及字符串…

用于与 HTTP 服务器通信的函数

用于与 HTTP 服务器通信的函数 Plant Simulation 提供了许多使用 HTTP 协议与 HTTP 服务器通信的函数。可使用这些函数来发送 HTTP 请求、发送数据和从 HTTP 响应中接收数据,以及在 HTTP 服务器上创建和删除资源: httpGetRequest 发送 GET 请求。请求…

在 Visual Studio 2022 (VS2022) 中删除 Git 分支的步骤如下

git branch -r PS \MauiApp1> git push origin --delete “20240523备份” git push origin --delete “20240523备份”

PCL 常用小知识

文章目录 一、时间计算二、实现类似`pcl::PointCloud::Ptr`和`pcl::PointCloud`的两个类相互转换三、查找点云的x,y,z的极值四、知道需要保存点的索引,从原点云中拷贝点到新点云五、从点云里删除和添加点六、对点云进行全局或局部变换七、链接两个点云字段(两点云大小必须相…

若依 ruoyi-vue 用户账号前后端参数校验密码 手机号 邮箱

前端 <el-dialog :title"title" :visible.sync"open" width"800px" append-to-body><el-form ref"form" :model"form" :rules"rules" label-width"120px"><el-row><el-col :span…

Vue3骨架屏(Skeleton)

效果如下图&#xff1a;在线预览 APIs 参数说明类型默认值必传animated是否展示动画效果booleantruefalsebutton是否使用按钮占位图boolean | SkeletonButtonPropsfalsefalseavatar是否显示头像占位图boolean | SkeletonAvatarPropsfalsefalseinput是否使用输入框占位图boolea…

SOLIDWORKS二次开发服务商 慧德敏学

SOLIDWORKS是一套三维设计软件, 采用特征建模、变量化驱动可方便地实现三维建模、装配和生成工程图。SOLIDWORKS软件本身所具有的交互方式, 可以使用户对已生成模型的尺寸、几何轮廓和相互约束关系随时进行修改, 而不需要编程。但要实现设计意义上的变量化绘图和系列化设计, 需…

java-查询字符串当中是否包含中文

文章目录 前言java-查询字符串当中是否包含中文 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&#xff0c;那欢迎常来啊…

软考系统架构师一些知识点记录-1

个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 准备去参加软考的考试&#xff0c;但对一些概念掌握的还不够&#xff0c;借此机会&#xff0c;整理记录一二&#xff0c;便于自己理解掌握。 知识范围 感觉不够清晰的部分主要是第三篇和第四篇的部分。…

国际顶会认可!KaiwuDB 论文入选 ICDE 2024

导 读 近日&#xff0c;KaiwuDB 与中国人民大学合作的论文 FOSS: A Self-Learned Doctor for Query Optimizer 被数据库领域顶会The 40th IEEE International Conference on Data Engineering (ICDE 2024) 录用啦! 论文中提出了具备自学习、自诊断能力的查询优化器 FOSS&…

USB官方文档怎么下载

直接登录USB官网"https://usb.org/" 如&#xff0c;我需要查找与USB device class相关的文档 点击搜索后就能找到。 学习还是要以官方文档为主&#xff0c;博客上的介绍不可信&#xff0c;USB协议规范很重要!

商品发布功能

文章目录 1.SPU和SKU介绍1.SPU2.SKU3.两者之间的关系 2.完成商品发布界面1.组件引入1.commoditylaunch.vue 引入到 src/views/modules/commodity下2.multiUpload.vue 引入到 src/components/upload/multiUpload.vue 2.创建菜单1.创建目录2.创建菜单&#xff0c;注意菜单路由要匹…

go语言中同一for循环体内的多个初始变量和多个自增变量用法示例

在go语言的for循环体中&#xff0c;我们可以同时初始多个变量&#xff0c; 也可以同时多多个变量进行自增/自减操作&#xff0c; 用法如下&#xff1a; for 后面的多个初始化变量使用的是逗号分隔的批量赋值操作&#xff0c;多个变量自增自减使用 加减运算符和逗号分隔 字符…

MySQL之性能剖析和Schema与数据类型优化(一)

性能剖析总结 1.定义性能最有效的方法是响应时间2.如果无法测量就无法有效地优化&#xff0c;所以性能优化工作需要基于高质量、全方位及完整的响应时间测量3.测量的最佳开始点是应用程序&#xff0c;而不是数据库。即使问题出在底层的数据库&#xff0c;借助良好的测量也可以…

C++系列-友元

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们在之前的文章有提到友元&#xff0c;我们先来看下面的这段包含了友元的代码&#xff1a; ​​#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace…