MySQL使用--存储过程篇

基于Mysql示例数据库的存储过程练习 基于Mysql示例数据库的存储过程练习 此处是数据库的脚本(见表语句,包括数据),执行方法这里就不介绍了! 一、第一个入门示例,创建存储过程,getAllProducts USE classicmodels;-- 选择数据库 SHOW TABLES; delimiter // CREATE PROCEDURE getAllProducts () BEGIN SELECT * FROM produ... 阅读详情
查看存储过程:
select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE'   
SHOW procedure status; 

查看存储过程的创建代码:
SHOW create procedure proc_name;

调用存储过程:
CALL proc_name(参数名);

修改存储过程:
ALTER PROCEDURE pname newSQL;

删除存储过程:
DROP PROCEDURE pname;

注释:
--
/* */

创建存储过程:
格式:
CREATE PROCEDURE pname([[IN |OUT |INOUT ] 参数名 数据类形...])
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
OUT 输出参数:该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数:调用时指定,并且可被改变和返回

无参数
DELIMITER //  
CREATE PROCEDURE test()  
begin 
	SELECT "hello world!"; 
end;  
//  
DELIMITER ; 

IN参数例子
DELIMITER //  
CREATE PROCEDURE demo_in_parameter(IN p_in int)  
BEGIN   
	SELECT p_in;   
	SET p_in=2;   
	SELECT p_in;   
END;   
//  
DELIMITER ;

OUT参数例子
DELIMITER //  
CREATE PROCEDURE demo_in_parameter(OUT p_out int) 
BEGIN   
	SELECT p_out;  
	SET p_out=2;  
	SELECT p_out;    
END;   
//  
DELIMITER ;

INOUT参数例子
DELIMITER //  
CREATE PROCEDURE demo_in_parameter(INOUT p_inout int)
BEGIN   
	SELECT p_inout;  
	SET p_inout=2;  
	SELECT p_inout;  
END;   
//  
DELIMITER ;

变量操作:
declare x1 varchar(5) default 'outer';   --声明变量
SET 变量名 = 表达式值 [,variable_name = expression ...];  --设置普通变量
SELECT 'Hello World' into 变量名;  --设置普通变量
SET @变量名 = 表达式值 [,variable_name = expression ...];  --设置用户变量, 用户级的全局变量
SELECT 'Hello World' into @变量名;  --设置用户变量

判断语句:
if var=0 then 
	insert into t values(17);  
else
	insert into t values(18); 
end if;  

多分支语句:
case var  
	when 0 then   
		insert into t values(17);  
	when 1 then   
		insert into t values(18);  
	else   
		insert into t values(19);  
end case;  

WHILE循环语句:
while var<6 do  
	insert into t values(var);  
	set var=var+1;  
end while;  

repeat循环语句:【相当于do while】
repeat  
	insert into t values(v);  
	set v=v+1;  
	until v>=5  
end repeat;  

LOOP循环:【无退出条件】
LOOP_LABLE:loop  
	insert into t values(v);  
	set v=v+1;  
	if v >=5 then 
	leave LOOP_LABLE;  		--使用leave语句退出,相当于break或exit
	end if;  
end loop;  

ITERATE迭代标签:

LOOP_LABLE:loop  
	if v=3 then   
		set v=v+1;  
		ITERATE LOOP_LABLE;   --直接跳至迭代开始处,相当于continue
	end if;  
	insert into t values(v);  
	set v=v+1;  
	if v>=5 then 
		leave LOOP_LABLE;  
	end if;  
end loop;

算术运算符:
	+     加   SET var1=2+2;       4
	-     减   SET var2=3-2;       1
	*      乘   SET var3=3*2;       6
	/     除   SET var4=10/3;      3.3333
	DIV   整除 SET var5=10 DIV 3; 3
	%     取模 SET var6=10%3 ;     1

比较运算符:
	>            大于 1>2 False
	<            小于 2<1 False
	<=           小于等于 2<=2 True
	>=           大于等于 3>=2 True
	BETWEEN      在两值之间 5 BETWEEN 1 AND 10 True
	NOT BETWEEN 不在两值之间 5 NOT BETWEEN 1 AND 10 False
	IN           在集合中 5 IN (1,2,3,4) False
	NOT IN       不在集合中 5 NOT IN (1,2,3,4) True
	=             等于 2=3 False
	<>, !=       不等于 2<>3 False
	<=>          严格比较两个NULL值是否相等 NULL<=>NULL True
	LIKE          简单模式匹配 "Guy Harrison" LIKE "Guy%" True
	REGEXP       正则式匹配 "Guy Harrison" REGEXP "[Gg]reg" False
	IS NULL      为空 0 IS NULL False
	IS NOT NULL 不为空 0 IS NOT NULL True

逻辑运算符:
	与 (AND)
	或(OR)
	异或(XOR)
 
位运算符:
	|   位或
	&   位与
	<< 左移位
	>> 右移位
	~   位非(单目运算,按位取反)


MySQL 存储过程模板 mysql 存储过程模板: CREATE PROCEDURE example.proc_Example() SQL SECURITY INVOKER BEGIN #Author: zyz #Create: 2018-09-11 #存储过程示例 #日志记录定义模块 DECLARE sys_StartTime datetime; DECLARE sys_ErrCode v... 阅读详情

相关推荐

《MySQL 入门教程》第 32 篇 存储过程(二)

本篇详细介绍了 MySQL 存储过程和函数中的编程功能,包括变量、条件控制语句、循环控制语句、错误处理、游标的使用以及访问权限控制。

Tony.Dong的专栏 5551

超级简单:共享两个自动生成存储过程的工具

开发一个项目或者开发一个应用系统初期大多数都是从数据库,类,UI界面开始的。其中最令人厌烦的是写些简单的CRUD的存储过程,以及调用这些存储过程的方法的类。 我花了很多时间在网上寻找,去找一个能根据能数据库中一个存在的数据表,为我们产生大部分存储过程和调用这些存储过程C#代码的实用的程序。这里共享两个我觉得还不错的程序给大家。 第一个是SQLA...

weixin_33806300的博客 538

高级Salesforce开发面试题

自定义设置允许您创建自定义数据集,以及为组织、配置文件或特定用户创建和关联自定义数据。自定义元数据类似于自定义设置,但是自定义元数据类型中的记录被视为元数据而不是数据。自定义设置有列表和层次自定义设置两种。自定义元数据中没有此类类型。此外,自定义元数据不支持基于用户配置文件或特定用户的层次结构类型的数据。自定义设置现在不再支持关系字段。但您可以在自定义元数据对象之间创建查找。元数据查询不占用查询sql次数的限制。

weixin_45663522的博客 1239

发布一个存储过程定义查看的小工具

先看看截图吧,下载地址在最后: 先填写好数据库连接信息(目前只支持SQL Server身份验证),然后点击”测试连接“,测试成功之后,会列出服务器中的数据库,选择一个,点击确定: 然后在左边列出了数据中的存储过程,选择一个存储过程就可以看到存储过程的定义了: 还做了筛选功能: 点击确定就会列出筛选的结果。 下载地址:http://...

weixin_30496431的博客 128

基于CatBoost回归模型的完整预测分析:从建模到SHAP可解释性分析

本文介绍了使用CatBoost回归模型进行完整预测分析的流程。首先导入必要的Python库并加载数据,进行数据预处理包括训练测试集划分和归一化处理。然后通过网格搜索优化CatBoost超参数,使用最优参数训练模型并评估预测性能。结果显示模型具有较高的决定系数(R²=0.9944)和较低的误差指标(RMSE=0.0696)。接着进行残差分析和正态性检验,发现残差基本服从正态分布。最后通过SHAP分析实现模型可解释性,识别关键特征影响。该方法为梯度提升树在回归问题中的应用提供了完整解决方案。

fx666_的博客 746

基于FPGA的图像预处理系统(图)

 北京机械工业学院 韩娟娟 邓文怡 娄小平 由于获取图像的工具或手段的影响,使获取图像无法完全体现原始图像的全部信息。因此,对图像进行预处理就显得非常重要。预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理来说比较重要的图像特征。通常根据预处理目的的不同,把预处理技术归为图像增强技术和图像分割技术两类。图像对比度处理是空间域图像增强的一种方法。由于图像灰度范围狭窄会使

lyzhangxianglove的专栏 1779

自动生成存储过程的工具

项目地址:http://spgen.codeplex.com/ 代码不是特别的难,有兴趣可以自己下载研究。这个程序产生的存储过程中的where子句中的列是固定的,注定了没有第一个程序那么灵活。 为了方便,这里直接提供了代码下载地址: 1、/Files/zhuqil/SQLGenSource.zip 2、/Files/zhuqil/SP_Gen_Public_SourceCodes_VS2005.z...

weixin_30466039的博客 344

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM

本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 351

JDBC基础篇(MYSQL)——使用CallabeStatement调用存储过程

注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接:package day04_callable; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import util.JdbcUtil;...

五彩世界的博客 914

Python爬虫实战:基于最新技术爬取国家企业信用信息公示系统数据

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的国家企业信用信息公示系统爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、数据解析与存储等高级话题,最终实现一个完整的爬虫系统。文章包含大量实战代码示例,适合中高级Python开发者学习参考。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和商业情报收集等领域。通用爬虫:如搜索引擎爬虫,广泛抓取互联网公开信息聚焦爬虫:针对特定领域或网站的数据采集增量式爬虫:只抓取更新内容,减少资源消耗。

2201_76125261的博客 2405

YOLOv8的二次创新 | 结合iRMB与EMA打造全新的iEMA机制,提升动态检测性能【附保姆级代码】

YOLOv8继承了YOLO系列的轻量化和高效检测特性,同时通过改进的架构设计使得其在实时场景下具有更高的检测精度。然而,随着检测需求的增加,尤其是在动态目标检测和长时间序列检测中,YOLOv8的鲁棒性依然可以提升。通过iEMA机制的引入,我们将在这些方面进行进一步优化。iRMB模块是我们对传统Residual Block的进一步改进。通过多层特征提取,iRMB能够捕捉更多层次的特征信息,并通过引入轻量化的残差结构,提升计算效率。

一键难忘的博客 3085

mysql preparedstatement 执行存储过程_JDBC基础篇(MYSQL)——使用CallabeStatement调用存储过程...

注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接:package day04_callable;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import util.JdbcUtil;/*** Ca...

weixin_39707168的博客 326

数学建模学习(75):全局敏感性分析Morris 方法

敏感性分析 (SA) 是分析不同应用条件下模型行为的基本实践。提出了许多 SA 技术,从简单的筛选方法到计算成本高昂的基于方差的方法。本篇内容我们通过将 Morris 方法来对模型进行分析。

全栈川川 1万+

Mysql存储过程调用

前言 博主github 博主个人博客http://blog.healerjean.com 准备数据 CREATE TABLE `demo_entity` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `age` bigint(20) DEF...

HealerJean梦想博客 5790

Openclaw错误分析与解决方案之:Agent couldn’t generate a response.

Openclaw错误分析与解决方案之:Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1315

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

mybatis mysql存储过程返回值_MyBatis调用MySQL存储过程返回结果集

存储过程中经常需要返回结果集。 MySQL 中直接用 select 即可返回结果集。而 Oracle 则需要使用游标来返回结果集。这一点 MySQL存储过程中经常需要返回结果集。 MySQL 中直接用 select 即可返回结果集。而 Oracle 则需要使用游标来返回结果集。这一点 MySQL 相对比较方便,如下代码即可实现输出结果集:存储过程定义:DELIMITER $$DROP proced...

weixin_39990558的博客 464

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

mysql存储过程 repeat_mysql存储过程 repeat

MySQL利用存储过程清除所有表中的所有记录MySQL利用存储过程清除所有表中的所有记录在使用MySQL过程中,难免会出现一些测试数据,然而这些测试数据在真正部署运行的时候,通常要被清楚掉,并且自增长的字段要回复初始值。如何高效快速的实现以上功能,可以使用存储过程实现这一个功能。主要使用:TRUNCATE TABLE。不仅可以清楚数据...文章推荐码发放2018-05-021585浏览量存储过程实...

weixin_42355013的博客 654

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mysql如何在if中设置return_mysql 存储过程 if return

MySql存储过程MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹...文章科技小先锋2017-11-15888浏览量Mysql中的函数什么是函数my...

weixin_29725791的博客 1562

mysql存储过程 递归_MySQL递归查找存储过程

依然是SQL问题,是上篇博客(http://my.oschina.net/u/1991646/blog/731996)的升级版需求(上篇是查询3层,此次是查询所有):无可避免的最终还是使用了MySQL存储过程。先说明业务场景:查询出某个节点中的所有下属节点。表结构和数据为:id superior_id57adca6415a414043183326f57...

weixin_39744240的博客 653

MySQL存储过程-初识

一、存储过程的创建语法 CREATE PROCEDURE 名称(指明进参IN、出参OUT、进出参INOUT 参数名 类型 ) 返回标签:BEGIN DECLARE 变量名 类型 (默认值DEFAULT 值) //定义变量 IF 条件 THEN ELSE LEAVE 返回标签; END IF //循环游标 OPEN 游标 //开始重复 REPEAT FETCH ... //结束重复 END REPEAT; END ...

learn_to_fly的博客 1483

MySQL 存储过程,视图,临时表,游标可能遇到的坑

MySQL 存储过程,视图,临时表,游标可能遇到的坑 MySQL 存储过程,视图,临时表,游标可能遇到的坑 MySQL创建视图报错 MySQL视图不可更新情况 临时表不能reopen 存储过程中使用游标一定要在最开始声明 游标的使用 MySQL存储过程中if的使用 计算字符串中某个字符个数 MySQL创建视图报错 View's SELECT contain...

加了白糖的老干妈 2万+

mysql 存储过程 参数 xml_MySQL存储过程 — 解析 XML 数据并实现插入操作

MySQL存储过程 — 解析XML 数据并实现插入操作一、概述:最近在做项目的过程中,需要利用MySQL存储过程 解析 XML数据并进行插入操作,因此就学习了下。MySQL 解析 XML 的思路就是使用 MySQL自带的 extractvalue ()函数 并根据传入XPath路径来获取相应的值,这个思路和他其他的语言的获取XML节点值差不多,只是写法不同。二、代码实现:1,待解析的XML字符串...

weixin_39735005的博客 411

mysql存储过程 map_Mybatis 调用存储过程,使用Map进行输入输出参数的传递

做个记录,以备后用java代码:public String texuChange() throws Exception {try {Map map = new HashMap();if(texu != null){SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Map parameterMap = n...

weixin_42353402的博客 618

mysql储存过程入门_Mysql存储过程入门知识

Mysql存储过程入门知识#1,查看数据库所有的存储过程名#--这个语句被用来移除一个存储程序。不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程#SELECT NAME FROM mysql.proc WHERE db='数据库名';#2,列出所有的存储过程#SHOW PROCEDURE STATUS;#3,查看存储过程详细#SHOW CREATE PROCEDURE 数据库名....

weixin_39931923的博客 98

mysql存储过程参数可选,在MySQL的存储过程中编写可选参数?

I would like to create a stored procedure which updates either all fields in a table or just a few of them according to parameters passed to it.How do I create a stored procedure that accepts optional...

weixin_42361933的博客 228
上一篇: MySQL使用--表操作篇
下一篇: MySQL使用--内建函数篇
上帝De助手
上帝De助手 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄19年 1494粉丝 215原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上帝De助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值