MySQL存储过程、创建、调用、查看、删除、存储过程与函数的额区别、缺陷等、存储过程写分页等

MySQL存储过程

        • 1、存储过程的定义
        • 2、存储过程使用的意义
        • 3、存储过程的创建
        • 4、存储过程的调用
        • 5、存储过程的查看
        • 6、存储过程的删除
        • 7、存储及过程与函数的区别
        • 8、存储过程的缺陷
        • 9、存储过程写分页

1、存储过程的定义

存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后,再次调用不需要重复编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

用一张图理解就是:

在这里插入图片描述

2、存储过程使用的意义
  1. 业务流陈复杂:业务复杂时,SQL语句相互依赖,顺序执行
  2. 频繁访问数据库:每条SQL语句都需要单独连接和访问数据库
  3. 先编译后执行:SQL语句的执行需要先编译
3、存储过程的创建
delimiter $$
CREATE PROCEDURE (
[ [IN |OUT |INOUT ] 参数名 数据类型…])
BEGIN
	DECLARE 变量 变量类型
END $$
delimiter ;

说明:
	‘[]’内容不是必须的部分
	in:表示入参
	out:表示出参
	inout:表示既入参又是返回值
	delimiter:在mysql中‘;’的作用是结束一个SQL语句,但是在存储过程中一组sql语句共同执行,如果使用‘;’那么后面的sql语句将无法同批次执行,因此先将结束符号设置为$$,而后又恢复为‘;’;
	
存储过程的创建
eg:
delimiter $$
create procedure proc_demo1()
begin 
	select * from student;
end $$
delimiter ;

-- 带参的存储过程
delimiter $$
create procedure proc_demo2(
	in x int,   -- in 只入参
	out y int,  -- out 只出参
	inout z int  -- inout 出入参
)
begin 
	set x = x+10;
	set y = y+100;
	set z = z+1000;
end $$
delimiter ;
4、存储过程的调用
call 存储过程名(参数名)

eg:
	call proc_demo1()
	
	
-- 环境变量 局部环境变量 @xx  全局环境变量@@x 
set @a = 1;  
set @b = 2;
set @c = 3;
select @a,@b,@c
call proc_demo2(@a,@b,@c)
select @a,@b,@c
5、存储过程的查看
select * from information_schema.ROUTINES where routine_schema='库名'
6、存储过程的删除
drop procedure 存储过程名
7、存储及过程与函数的区别
  1. 语法:存储过程procedure,函数function
  2. 执行:存储过程可以独立执行,函数必须依赖表达式的调用
  3. 返回值:存储过程可以定义多个返回结果,函数只有一个返回结果
  4. 功能:函数不易做复杂的业务逻辑,但是存储过程可以
8、存储过程的缺陷
  1. 维护性:存储过程的维护成本高,修改调试较为麻烦
  2. 移植性:大多数关系型数据库的存储过程存在席位差异
  3. 协作性:没有相关的版本控制或者IED,团队中对于存储过程的使用大多是依赖文档
9、存储过程写分页
delimiter $$
create procedure proc_stuPage2(
	in curpage int,
	in sizepage int,
	out countsum int,
	out pagesum int
)
begin 
	declare weizhi int;
	set weizhi = (curpage-1)*sizepage;
	select count(*) from student into countsum;
	set pagesum = ceiling( countsum / sizepage );
	select * from student limit weizhi, sizepage;
end $$
delimiter ;


调用:
set @a = 2;
set @b = 3;
set @c = 0;
set @d = 0;
call proc_stuPage2(@a,@b,@c,@d)

select @a,@b,@c,@d

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

redis 从0到1完整学习 (十二):RedisObject 之 List 类型

文章目录 1. 引言2. redis 源码下载3. redisObject 管理 List 类型的数据结构3.1 redisObject 管理 List 类型3.2 List PUSH 源码 4. 参考 1. 引言 前情提要: 《redis 从0到1完整学习 (一):安装&初识 redis》 《redis 从0到1…

pytest --collectonly 收集测试案例

pytest --collectonly 是一条命令行指令,用于在运行 pytest 测试时仅收集测试项而不执行它们。它会显示出所有可用的测试项列表,包括测试模块、测试类和测试函数,但不会执行任何实际的测试代码。 这个命令对于查看项目中的测试结构和确保所有…

千里马2023年终总结-android framework实战

背景: hi粉丝朋友们: 2023年马上就过去了,很多学员朋友也都希望马哥这边写个年终总结,因为这几个月时间都忙于新课程halsystracesurfaceflinger专题的开发,差点都忘记了这个事情了,今天特别花时间来写个bl…

思维链COT原理探究

要进行因果分析,需要把思维链中的不同元素拆解开来,然后通过控制变量实验,来研究不同元素对COT效果的影响。以下两篇论文的核心差异就在于: COT的变量拆解,以及控制变量的实验方式。 结合两篇论文的实验结论,可能导致…

【深度学习:Convolutional Neural Networks】卷积神经网络入门指南

卷积神经网络(CNN)是深度学习领域最引人注目的成就之一。自从LeCun等人在20世纪90年代初引入以来,CNN在图像处理、视频分析和自然语言处理等领域取得了显著的成就。在这篇博客中,我们将探讨CNN的基本原理、结构和一些实际应用案例…

实验3 vTPM相关

一、实验目的 1.了解vTPM原理和相关知识;2.创建具备vTPM的虚拟机;3.加深对可信计算技术的理解。 二、实验内容 安装seabios,libtpms,swtpm,qemu‐tpm;启动vTPM;安装虚拟机。 三、实验环境 …

2013年第二届数学建模国际赛小美赛B题寄居蟹进化出人类的就业模式解题全过程文档及程序

2013年第二届数学建模国际赛小美赛 B题 寄居蟹进化出人类的就业模式 原题再现: 寄居蟹是美国最受欢迎的宠物品种,依靠其他动物的壳来保护。剥去寄居蟹的壳,你会看到它柔软、粉红色的腹部卷曲在头状的蕨类叶子后面。大多数寄居蟹喜欢蜗牛壳&…

Unity Window安装包制作

Unity Window安装包制作 介绍一、RAR自解压方式1、找到Unity打包的可执行程序2.创建自解压文件3.配置设置4、最后点击确定等待压缩完成即可(默认生成位置为你选中文件右键点击添加到压缩文件时的路径) 二、Setup Factory工具安装制作Window安装包相关常用…

2023年成都市中等职业学校学生技能大赛“网络搭建及应用”赛项竞赛样卷

2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 (总分1000分) 目录 2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 网络建设与调试项目(500分) 服务器搭建与运维项目(…

每日一题----删除指定数字

大家好今天是1月1号,我在这里祝大家元旦快乐,感谢大家的支持,新的一年我会更加努力。谢谢大家。!!! 文章目录 目录 文章目录 题目演示 题⽬描述: 先输⼊10个整数存放在数组中,再输⼊…

华为云创新中心,引领浙南的数字化腾飞

编辑:阿冒 设计:沐由 县域经济是我国国民经济的重要组成部分,是推动经济社会全面发展的核心力量之一。在推进中国式现代化的征程中,县域经济扮演的角色也越来越重要。 毫无疑问,县域经济的良性发展,需要多方…

阿里后端实习一面面经

阿里后端实习一面面经 项目中使用到了es,es的作用? elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 es中的重要概念? 群集:一个或多个节点…

【HarmonyOs Arkts笔记】Arkts ForEach循环使用

说明 ForEach循环数组对象时 要指定对象的唯一标识 例如 id,否则只会显示第一个 State tabsList: object[] [{ name: 砍价活动, id: 1, icon: https://php-b2c.likeshop.cn/uploads/images/2022062414322367e6a5479.png },{ name: 拼团活动, id: 2, icon: https:…

Java循环高级(无限循环,break,continue,Random,逢七过,平方根,判断是否是质数,猜数字小游戏)

文章目录 1.无限循环概念:for格式:while格式:do...while格式:无限循环的注意事项: 2.条件控制语句break:continue: 3. Random使用步骤: 4. 逢七过5. 平方根6.判断是否为质数7. 猜数字小游戏 1.无限循环 概…

【形式语言与自动机/编译原理】CFG-->Greibach-->NPDA(3)

本文将详细讲解《形式语言与自动机》(研究生课程)或《编译原理》(本科生课程)中的上下文无关文法(CFG)转换成Greibach范式,再转成下推自动机(NPDA)识别语言是否可以被接受…

NXP实战笔记(三):S32K3xx基于RTD-SDK在S32DS上配置WDT配置

目录 1、WDT概述 2、SWT配置 2.1、超时时间,复位方式的配置 2.2、中断形式 1、WDT概述 SWT 编程模型只允许 32 位(字)访问。 以下任何尝试访问都是无效的: •非32位访问 •写入只读寄存器 •启用SWT时,将不正确的值写入SR…

10 个顶级的 OBS 录屏替代品知识分享

视频是任何商业沟通策略的关键。您可能希望共享和记录您的屏幕以显示工作流程、为客户创建有用的教程和资源,或增强组织的知识库。 或者,也许视频是您核心产品的一部分,而出色的视频录制软件对于您的业务、YouTube 频道或直播爱好来说是必需…

计算机基础面试题 |01.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【软件工程】融通未来的工艺:深度解析统一过程在软件开发中的角色

🍎个人博客:个人主页 🏆个人专栏: 软件工程 ⛳️ 功不唐捐,玉汝于成 目录 前言: 正文 统一过程(Unified Process) 介绍和解释: 应用: 优缺点&#xf…

使用docker轻量化部署snmp agent(SNMPv2访问)

文章目录 服务器环境说明单机部署(非挂载conf文件版)debian:buster-slim容器简介实现步骤创建Dockerfile创建SNMP配置文件 (snmpd.conf)构建Docker镜像运行Docker容器 注意补充复制容器文件到本地容器、镜像操作 单机部署(挂载conf文件版&…