当前位置: 首页 > news >正文

存储过程及练习

 1.存储过程

📖什么是存储过程?

存储过程和函数是事先经过编译并存储在数据库中的一段sql语句集合,调用存储过程函数可以简

化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的

效率是有好处的。

存储过程和函数的区别:

1. 函数必须有返回值,而存储过程没有。

2. 存储过程的参数可以是IN、OUT、INOUT类型,函数的参数只能是IN

📘优点

存储过程只在创建时进行编译;而SQL语句每执行一次就编译一次,所以使用存储过程可以

提高数据库执行速度

简化复杂操作,结合事务一起封装

复用性好

安全性高,可指定存储过程的使用权

注意:并发量少的情况下,很少使用存储过程。并发量高的情况下,为了提高效率,用存储过程

比较多

存储过程练习 

1、创建一个存储过程avg_sal_a,有2个参数,分别是部门名称dept_name及接收平均工资其中部门名称测试参数为上海中心,接收平均薪资变量为@a。

mysql> select avg(salary) from employee where department_NO in (select number from department where name = "上海中心");--查询sql
+-------------+
| avg(salary) |
+-------------+
| 2800.000000 |
+-------------+
1 row in set (0.00 sec)
​
mysql> \d $--改结束符
--创建存储过程
mysql> create procedure avg_sal_a(in dept_name varchar(255),out avg_dept int)-> begin-> select avg(salary) into avg_dept from employee where department_NO in (select number from department where name = dept_name);-> end$
Query OK, 0 rows affected (0.00 sec)
​
mysql> \d ;--改回结束符
mysql> call avg_sal_a("上海中心",@a);--使用存储过程
Query OK, 1 row affected (0.00 sec)
​
mysql> select @a;--查看参数
+------+
| @a   |
+------+
| 2800 |
+------+
1 row in set (0.00 sec)

2.创建存储过程,给定参数员工姓名,查询该员工名所在部门的最高薪资,并返回给变量@a;

mysql> select max(salary) from employee group by department_NO having department_NO = (select  department_NO from employee where name =
"吴所为");--查询语句
+-------------+
| max(salary) |
+-------------+
|     2800.00 |
+-------------+
1 row in set (0.00 sec)
mysql> \d $--改结束符
--创建存储过程
mysql> create procedure max_sal_e(in e_name varchar(255),out max_sal int)-> begin-> select max(salary) into max_sal from employee group by department_NO having department_NO = (select  department_NO from employee where name = e_name);-> end&
Query OK, 0 rows affected (0.00 sec)
mysql> \d ;--改回结束符
mysql> call max_sal_e("吴所为",@a);--使用存储过程
Query OK, 1 row affected (0.00 sec)
​
mysql> select @a;--查看
+------+
| @a   |
+------+
| 2800 |
+------+
1 row in set (0.00 sec)
​

相关文章:

存储过程及练习

1.存储过程 📖什么是存储过程? 存储过程和函数是事先经过编译并存储在数据库中的一段sql语句集合,调用存储过程函数可以简 化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的 效率…...

【在Linux世界中追寻伟大的One Piece】多路转接epoll

目录 1 -> I/O多路转接之poll 1.1 -> poll函数接口 1.2 -> poll的优点 1.3 -> poll的缺点 1.4 -> poll示例 1.4.1 -> 使用poll监控标准输入 2 -> I/O多路转接之epoll 2.1 -> 初识epoll 2.2 -> epoll的相关系统调用 2.2.1 -> epoll_cre…...

设计模式-参考的雷丰阳老师直播课

一般开发中使用的模式为模版模式策略模式组合,模版用来定义骨架,策略用来实现细节。 模版模式 策略模式 与模版模式特别像,模版模式会定义好步骤定义好框架,策略模式定义小细节 入口类 使用模版模式策略模式开发支付 以上使用…...

Python +Pyqt5 简单视频爬取学习(一)

文章目录 前言 一、演示 二、查找网页视频流的索引文件 三、分析视频流的url和视频流索引文件的差异性 四、判断视频数据是否需要转化为ts 五、判断视频是否被加密,如若被加密,需要先解密 六、合并所有的ts视频,以MP4模式输出完整视频 总结 前…...

Python Requests模块全面教程

Python Requests模块全面教程 在现代软件开发中,网络请求是一个不可或缺的部分。无论是获取网页数据、调用API接口,还是进行数据交互,都会涉及到HTTP请求。Python的Requests模块是一个非常强大的库,能够让我们轻松地发送HTTP请求…...

PyQt入门指南六十 与Python其他库的集成方法

PyQt是一个强大的GUI库,它可以与Python的其他库无缝集成,以实现更复杂的功能。以下是一些常见的集成方法和示例: 1. NumPy NumPy是Python中用于科学计算的基础库。您可以在PyQt应用程序中使用NumPy来处理数据和进行数值计算。 import sys …...

Android15之解决:Dex checksum does not match for dex:framework.jar问题(二百三十九)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...

车企自动驾驶功能策略 --- 硬件预埋(卷传感器配置)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

【已为网站上传证书,却显示不安全】

已为网站上传证书,却显示不安全 错误显示解决办法分析原因 错误显示 此站点有一个由受信任的颁发机构颁发的有效证书但是网站的某些部分不安全 解决办法 删除浏览器所有历史记录, 如果是Edge浏览器显示不安全,那就删除Edge浏览器的所有历史记录; 如果是Google Chrome浏览器显…...

docker busybox作为initContainers

一、上传到私有仓储 docker pull busybox:1.33.1 docker tag busybox:1.33.1 192.168.31.185/public/busybox:1.33.1 docker push 192.168.31.185/public/busybox:1.33.1 --- apiVersion: apps/v1 kind: Deployment metadata:annotations: {}labels: {}name: saas-ali-apiname…...

20.UE5UI预构造,开始菜单

2-22 开始菜单、事件分发器、UI预构造_哔哩哔哩_bilibili 目录 1.UI预构造 2.开始菜单和开始关卡 2.1开始菜单 2.2开始关卡 2.3将开始菜单展示到开始关卡 3.事件分发器 1.UI预构造 如果我们直接再画布上设计我们的按钮,我们需要为每一个按钮进行编辑&#x…...

Electron教程1-初学入门

玩转Electron Electron 是什么注意事项环境安装安装 vscode安装 git 第一个实例第二个实例第二个实例解读 总结问题解答 Electron 是什么 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个…...

从北美火到中国,大数据洞察品牌“STANLEY”的突围之路

保守直筒大头的“硬汉”外形,以百变颜色踩中时尚命脉,与各路大牌“梦幻联动”,不少时尚弄潮儿没能逃过其“真香”诱惑。 这就是今年以来从北美火到中国的STANLEY,在“巨无霸”水杯中突围出属于自己的一条路。 最近STANLEY又整活…...

深度学习之GAN应用

1 GAN的应用(文本生成) 1.1 GAN为什么不适合文本任务? ​ GAN在2014年被提出之后,在图像生成领域取得了广泛的研究应用。然后在文本领域却一直没有很惊艳的效果。主要在于文本数据是离散数据,而GAN在应用于离散数据时…...

鸿蒙生态下的安全隐私保护:打造用户信任的应用体验

鸿蒙生态下的安全隐私保护:打造用户信任的应用体验 随着华为鸿蒙系统的快速发展,越来越多的设备开始支持这一操作系统,不仅限于智能手机,还包括智能穿戴设备、智能家居产品等。作为开发者,在享受鸿蒙生态系统带来的广…...

用pandoc工具实现ipynb,md,word,pdf之间的转化

Pandoc 是一个强大的工具,可以实现多种文件格式之间的转换,包括 Jupyter Notebook (.ipynb)、Markdown (.md)、Word (.docx)、PDF 等格式。以下是具体的实现方法: 1. 安装 Pandoc 确保已安装 Pandoc: Linux: sudo apt install p…...

第三十一天|贪心算法| 56. 合并区间,738.单调递增的数字 , 968.监控二叉树

目录 56. 合并区间 方法1:fff 看方法2:fff优化版 方法3: 738.单调递增的数字 968.监控二叉树(贪心二叉树) 56. 合并区间 判断重叠区间问题,与452和435是一个套路 方法1:fff 看方法2&am…...

力扣 最长公共前缀-14

最长公共前缀-14 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//定义一个字符数组&#xff0c;用于存储strs字符串数组第一个字符串&#xff0c;方便与后面的字符串进行比较判断char s[200];//定义一个字符数组&#xff0c;用来返回…...

IDEA调整警告级别【IntelliJ IDEA 2024.2.0.1】

文章目录 目前现状鼠标悬停&#xff0c;选择配置筛选 > 取消选择OK效果 目前现状 需要把提示改成只要显示error的5个 鼠标悬停&#xff0c;选择配置 筛选 > 取消选择 OK 效果...

Vulnhub靶场 Billu_b0x 练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 文件包含2. SQL注入3. 文件上传4. 反弹shell5. 提权&#xff08;思路1&#xff1a;ssh&#xff09;6. 提权&#xff08;思路2&#xff1a;内核&#xff09;7. 补充 0x04 总结 0x00 准备 下载链接&#…...

从A/B测试到临床实验:避开P值陷阱的5个实战要点(含单尾/双尾选择指南)

从A/B测试到临床实验&#xff1a;避开P值陷阱的5个实战要点&#xff08;含单尾/双尾选择指南&#xff09; 在数据驱动的决策时代&#xff0c;P值已成为产品迭代和医学研究中的"通行货币"。当A/B测试报告显示"P<0.05"时&#xff0c;团队往往迫不及待地全…...

别再手动改端口了!用这个OrCAD小补丁,3分钟搞定原理图端口标准化

告别混乱设计&#xff1a;OrCAD端口标准化高效解决方案 在复杂的电子设计项目中&#xff0c;原理图的整洁与规范程度直接影响着团队协作效率和后期维护成本。当多位工程师共同参与同一项目时&#xff0c;端口类型和朝向的不统一往往成为困扰PCB设计团队的常见问题。这种看似微小…...

2026四大主流收银系统深度横评:商拓、柚子、商琦云与银阁仕实战对比

在零售和餐饮行业数字化转型的浪潮中&#xff0c;收银系统早已超越了简单的“算账工具”范畴&#xff0c;成为了门店运营的中枢神经。很多店主在选型时容易陷入一个误区&#xff1a;只盯着硬件价格或者界面好不好看&#xff0c;却忽略了系统在高峰期的稳定性、数据链路的打通能…...

手把手教你改造10块钱的USBASP烧录器,让它兼容Arduino IDE和AVRDUDESS

10元USBASP烧录器改造实战&#xff1a;解锁Arduino与AVRDUDESS全兼容方案 从闲置到全能&#xff1a;低成本硬件改造的价值探索 在电子制作和嵌入式开发领域&#xff0c;专业烧录工具往往价格不菲。但你可能不知道&#xff0c;手头那台吃灰的"智峰"版USBASP烧录器&…...

告别RGB控制混乱:用ChromaControl打造统一灯光生态

告别RGB控制混乱&#xff1a;用ChromaControl打造统一灯光生态 【免费下载链接】ChromaControl 3rd party device lighting support for Razer Synapse. 项目地址: https://gitcode.com/gh_mirrors/ch/ChromaControl 你是否曾经面对桌上五颜六色的RGB设备感到困惑&#…...

别再只盯着USB3.0速度了!深入链路训练状态机(LTSSM),搞懂设备插上后到底经历了什么

USB3.0链路训练状态机&#xff1a;从插入到识别的技术全景解析 当我们将一个USB3.0设备插入电脑时&#xff0c;那个短暂的"识别"过程背后&#xff0c;隐藏着一套精密的数字握手协议。这个看似简单的动作&#xff0c;实际上触发了物理层到协议层的多阶段协同工作&…...

Perplexity实时新闻查询效率翻倍:从API调用到结果过滤的7个隐藏技巧

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity实时新闻查询效率翻倍&#xff1a;从API调用到结果过滤的7个隐藏技巧 Perplexity 的实时新闻 API&#xff08;如 /search/news 端点&#xff09;在默认配置下常因冗余字段、未压缩响应和同步阻塞而…...

从SparseConvTensor到Rulebook:图解spconv稀疏卷积的核心工作流程

从SparseConvTensor到Rulebook&#xff1a;图解spconv稀疏卷积的核心工作流程 稀疏卷积&#xff08;Sparse Convolution&#xff09;作为处理3D点云数据的关键技术&#xff0c;正在重塑计算机视觉领域的格局。想象一下&#xff0c;当传统卷积神经网络在密集的2D图像上大展拳脚时…...

深度解析fullPage.js全屏滚动插件的架构设计与性能优化策略

深度解析fullPage.js全屏滚动插件的架构设计与性能优化策略 【免费下载链接】fullPage.js fullPage plugin by Alvaro Trigo. Create full screen pages fast and simple 项目地址: https://gitcode.com/gh_mirrors/fu/fullPage.js fullPage.js作为现代Web开发中广受青睐…...

基于Unsloth与LoRA的高效大语言模型微调工程化实践指南

1. 项目概述&#xff1a;一个为Unsloth优化的AI开发伴侣 如果你最近在折腾大语言模型&#xff08;LLM&#xff09;的微调&#xff0c;尤其是想在自己的消费级显卡上跑起来&#xff0c;那你大概率听说过或者正在用Unsloth。这个开源库通过一系列巧妙的优化&#xff08;比如融合…...