mysql中的逻辑类型如何定义_MYSQL存储过程即常用逻辑知识点总结

Mysql存储过程

1.创建存储过程语法(格式)

DELIMITER $

CREATE PROCEDURE 存储过程名A(IN 传入参数名a INT,IN 传入参数名b VARCHAR(20),OUT 返回参数名c INT)

BEGIN

内容..........

END $

解析:

IN 代表传入的参数,定义传入参数名,并且后面跟上传入参数类型(INT,VARCHAR,DOUBLE,........)

OUT 代表存储过程执行完返回的数据,定义参数名,并且后面跟上参数类型(INT,VARCHAR,DOUBLE,........)

INOUT 代表既可以传入也可以返回 ,定义参数名,并且后面跟上参数类型(INT,VARCHAR,DOUBLE,........)

2.存储过程内具体语法与逻辑

A.定义变量语法:

DECLARE 变量名a 参数类型(INT,VARCHAR(20),BOOLEAN,........) [DEFAULT NULL];

注:可以在参数类型后面加 DEFAULT NULL; 来设置初始值。

B.变量赋值:

方式1(直接对变量进行赋值):

SET 定义的变量a = NEW();

方式2(sql查询的结果直接赋值给变量):

SELECT `student`.age INTO 定义的变量a FROM `student` WHERE...........

方式3(sql查询的结果直接赋值给多个变量):

SELECT `student`.name AS 定义的变量a,`student`.age AS 定义的变量b INTO 定义的变量a,定义的变量b FROM `student` ...............

c.逻辑判断:

#IF判断:

IF 条件语句(3>5) THEN

条件为TRUE时执行.........;

END IF;

#IF ELSE判断:

IF 条件(a>0) THEN

条件为(a>0)时执行........;

ELSE IF 条件(a<0) THEN

条件为(a<0)时执行.......;

ELSE

其它执行.......;

END IF;

D.游标,(LOOP)循环:

#例.单游标循环:create procedure my_procedure() -- 创建存储过程

begin -- 开始存储过程

declare my_id varchar(32); -- 自定义变量1

declare my_name varchar(50); -- 自定义变量2

DECLARE done INT DEFAULT FALSE; -- 自定义控制游标循环变量,默认false

DECLARE cur CURSOR FOR ( SELECT id, name FROM t_people ); -- 定义游标并输入结果集

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 绑定控制变量到游标,游标循环结束自动转true

OPEN cur; -- 打开游标

posLoop: LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到

FETCH cur into my_id, my_name; -- 将游标当前读取行的数据顺序赋予自定义变量12

IF done THEN -- 判断是否继续循环

LEAVE posLoop; -- 结束循环

END IF;

-- 自己要做的事情,在 sql 中直接使用自定义变量即可

UPDATE t_user SET c_name = my_name WHERE id = my_id and rtrim(ltrim(c_name)) = ''; -- 左右去空格

COMMIT; -- 提交事务

END LOOP posLoop; -- 结束自定义循环体

CLOSE cur; -- 关闭游标

END; -- 结束存储过程

#例.多游标循环:create procedure my_procedure() -- 创建存储过程begin -- 开始存储过程

declare my_id varchar(32); -- 自定义变量1

declare my_name varchar(50); -- 自定义变量2

DECLARE done INT DEFAULT FALSE; -- 自定义控制游标循环变量,默认false

DECLARE cur_1 CURSOR FOR ( SELECT id, name FROM t_people ); -- 定义游标并输入结果集

DECLARE cur_2 CURSOR FOR ( SELECT id_2,name_2 FROM t_people_2); --定义游标并输入结果集

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 绑定控制变量到游标,游标循环结束自动转true

OPEN cur_1; -- 打开游标

posLoop: LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到

FETCH cur_1 into my_id, my_name; -- 将游标当前读取行的数据顺序赋予自定义变量12

IF done THEN -- 判断是否继续循环

LEAVE posLoop; -- 结束循环

END IF;

-- 自己要做的事情,在 sql 中直接使用自定义变量即可

UPDATE ..........;  --自己要做的具体操作

END LOOP posLoop; -- 结束自定义循环体

CLOSE cur_1; -- 关闭游标

SET done = FALSE;  -- 因为当第一个游标遍历完后其值被handler设置为TRUE了,如果不用set把它设置为 FALSE ,那么第二个游标就不会遍历了。(最好是在每个打开游标的操作前都用该语句,以确保游标能真正遍历)

OPEN cur_2; -- 打开游标

posLoop_2: LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到

FETCH cur_2 into my_id, my_name; -- 将游标当前读取行的数据顺序赋予自定义变量12

IF done THEN -- 判断是否继续循环

LEAVE posLoop_2; -- 结束循环

END IF;

-- 自己要做的事情,在 sql 中直接使用自定义变量即可

INSERT ..........;   --自己要做的具体操作

END LOOP posLoop_2; -- 结束自定义循环体

CLOSE cur_2; -- 关闭游标

END; -- 结束存储过程

3.存储过程的调用

#调用没有返回值的存储过程CALL 存储过程名(参数.....);

#调用有返回值的存储过程(获得返回值)

CALL 存储过程名(@aaa);

SELECT @aaa;

4.删除存储过程

DROP PROCEDURE 存储过程名;

5.注意事项

存储过程中的分号(;)很重要,尽量不要省略。

oracle 游标嵌套使用 今天想要在游标里面嵌套一个游标 阅读详情

相关推荐

Navicat实战:Oracle存储过程从创建到调用的完整指南(附常见错误解决方案)

本文详细介绍了如何使用Navicat高效管理Oracle存储过程,涵盖从创建、调试到调用的全流程,并提供常见错误解决方案。通过可视化操作界面和实战技巧,帮助开发者提升数据库开发效率,特别针对参数设计、异常处理和性能优化等关键环节进行深入解析。

xgboost6farmer的博客 559

navicat 怎么调试存储过程_Navicat 执行存储过程

1. 打开navicat选择要创建存储过程的数据库,右击函数。2. 新建函数,创建一个新存储过程3. 添加所要输入的参数,选择模式和类型(!这里并没有默认提供大小)。4. 输入存储过程的定义语句。用例1~~~BEGINSELECT`ord_orders`.`id` AS `id`,`ord_orders`.`date_sample` AS `date_sample`,`ord_orders`.`u...

weixin_30475939的博客 1万+

MySQL中的存储过程详解(上篇)

存储过程篇章开始咯,感兴趣的可以观看噢~

a15766649633的博客 2167

mysql存储过程调试方法

有如下一个存储过程 CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int,currentSeqNo VARCHAR(3),OUT o_result INT) BEGIN SET @a= NULL; SET @b= NULL; SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ;

Pei_hua100的专栏 1137

MySQL常用操作之创建存储过程语法详解

MySQL创建存过经典总结,没有之一

CharlesYan的博客 5346

MySQL中的存储过程

从 版本开始支持存储过程,存储过程能够将复杂的 逻辑封装在一起,而应用程序无须关注存储过程内部复杂的 逻辑,而只需要简单地调用存储过程即可存储过程的英文是 。它的思想很简单,就是一组经过预先编译的 语句的封装执行过程:存储过程预先存储在 服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列 语句全部执行....................................

桐花思雨 1664

MySQL中的存储过程(详细篇)

概述 由MySQL5.0 版本开始支持存储过程。 如果在实现用户的某些需求时,需要编写一组复杂的SQL语句才能实现的时候,那么我们就可以将这组复杂的SQL语句集提前编写在数据库中,由JDBC调用来执行这组SQL语句。把编写在数据库中的SQL语句集称为存储过程。 存储过程:(PROCEDURE)是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是很有好处的。 就是数据库 SQL 语言层面的代码封装与.

古城的博客 13万+

从波形到代码:手把手调试GaN图腾柱PFC的过零点切换与软启动策略

本文详细解析了GaN图腾柱无桥Boost PFC电路在过零点切换与软启动策略中的调试方法。通过波形分析、代码实现和寄存器配置,提供了解决误开通、震荡波形等问题的实用方案,帮助工程师优化电源设计效率与可靠性。

weixin_30831529的博客 421

Mysql存储过程知识点总结+Mybatisplus调用存储过程案例实现

Mysql存储过程知识点总结+存储过程调用案例实现 文章目录一、存储过程二、存储过程的优缺点优点缺点三、存储过程的创建与调用1.创建存储过程:四、存储过程的参数五、MybatisPlus调用存储过程controllerDepartmentServiceImplMapperMapper.xml 一、存储过程 MySQL 5.0版本开始支持存储过程 ** 存储过程(Stored Procedure)**是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,

wenwenaier的博客 7249

codevs 1620 轮船问题 DP 解题报告

某国家被一条河划分为南北两部分,在南岸和北岸总共有N对城市,每一城市在对岸都有唯一的友好城市,任何两个城市都没有相同的友好城市。

Hawo11的博客 815

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

MySQL中的存储过程(详解)

MySQL存储过程是由一组预先编好的SQL语句,像方法一样可以被重复调用,存储过程可以接收参数,执行复杂的逻辑操作,可以返回结果,是多条sql语句的集合MySQL 存储过程是一种非常强大的数据库编程工具,可以提高数据库的性能、可维护性和安全性。本文介绍了 MySQL 存储过程的基本概念、语法和使用方法,并通过一些实际的例子来说明其在数据库开发中的应用。在实际应用中,可以根据具体的需求来选择是否使用存储过程,并合理地设计存储过程的结构和功能,以提高数据库的性能和可维护性。

2401_85419489的博客 2304

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 736

mysql存储过程逻辑与_MYSQL存储过程即常用逻辑知识点总结

Mysql存储过程1.创建存储过程语法(格式)DELIMITER $CREATE PROCEDURE 存储过程名A(IN 传入参数名a INT,IN 传入参数名b VARCHAR(20),OUT 返回参数名c INT)BEGIN内容..........END $解析:IN 代表传入的参数,定义传入参数名,并且后面跟上传入参数类型(INT,VARCHAR,DOUBLE,........)OUT 代表...

weixin_33173924的博客 419

Unreal5从入门到精通之如何实现移动端触屏滑动手势

随着移动设备的普及,越来越多的游戏和应用选择在移动平台上发布。Unreal Engine 5(UE5)作为一款强大的游戏引擎,提供了丰富的工具和功能,帮助开发者打造出色的移动体验。UE5不仅提升了图形质量,还大幅简化了开发流程,使得开发者能够更专注于游戏设计和用户体验。在移动游戏中,触屏滑动手势是用户与应用互动的主要方式之一。然而,许多开发者在实现这些功能时常常遇到困难。为了填补这一知识空白,本篇文章将详细介绍如何在UE5中实现移动端触屏滑动手势,帮助你从入门到精通,提升你的开发技能。

TxNet 1133

Python 爬虫实战:爬取知乎问答与评论数据并分析

摘要:本文以Python为核心工具,系统讲解知乎问答与评论数据爬取的技术方案。通过分析知乎API接口结构,详细阐述Requests库结合正则表达式的数据获取方法,涵盖请求头构造、鉴权参数处理等关键技术。文章对比了HTML解析、API调用和Selenium模拟三种爬取方案的优劣,提供完整的代码实现,包括问题信息获取、回答列表爬取和评论数据提取。同时介绍了数据存储(JSON/Excel)和基础文本分析(词云生成)方法,并给出合规使用建议和技术优化方向,为开发者提供了一套可落地的知乎数据爬取与分析解决方案。

2503_91057718的博客 1818

mysql 存储过程逻辑表达 and_MYSQL存储过程即常用逻辑知识点总结

1.创建存储过程语法(格式) DELIMITER $CREATE PROCEDURE 存储过程名A(IN 传入参数名a INT,IN 传入参数名b VARCHAR(20),OUT 返回参数名c INT)BEGIN内容..........END $解析: IN 代表传入的参数,定义传入参数名,并且后面跟上传入参数类型(INT,VARCHAR,DOUBLE,........) OUT 代表存储过程执行...

weixin_28847199的博客 243

sam3.1 部署笔记 推理封装

sam3.1 部署笔记

jacke121的专栏 422

MYSQL存储过程即常用逻辑

Mysql存储过程 1.创建存储过程语法(格式) DELIMITER $ CREATE PROCEDURE 存储过程名A(IN 传入参数名a INT,IN 传入参数名b VARCHAR(20),OUT 返回参数名c INT) BEGIN   内容.......... END $ 解析:     IN 代表传入的参数,定义传入参数名,并且后面跟上传入参数类型(INT...

asdfgh1999的博客 214

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

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mysql存储过程语法格式_MYSQL存储过程即常用逻辑知识点总结

Mysql存储过程1.创建存储过程语法(格式)DELIMITER $CREATE PROCEDURE 存储过程名A(IN 传入参数名a INT,IN 传入参数名b VARCHAR(20),OUT 返回参数名c INT)BEGIN内容..........END $解析:IN 代表传入的参数,定义传入参数名,并且后面跟上传入参数类型(INT,VARCHAR,DOUBLE,........)OUT 代表...

weixin_34237703的博客 415

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【MySQL】MySQL中的存储过程(详细篇)

由MySQL5.0 版本开始支持存储过程。如果在实现用户的某些需求时,需要编写一组复杂的SQL语句才能实现的时候,那么我们就可以将这组复杂的SQL语句集提前编写在数据库中,由JDBC调用来执行这组SQL语句。把编写在数据库中的SQL语句集称为存储过程。PROCEDURE)是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是很有好处的。就是数据库 SQL 语言层面的代码封装与重用。存储过程。

qq_43331089的博客 939

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL存储过程和函数知识点

存储过程(Stored Procedure)是一组预编译的SQL语句,封装了数据库操作逻辑,可以通过调用存储过程的名称来执行这些操作。存储过程通常用于执行复杂的业务逻辑、批量数据处理以及封装数据库操作。函数(Function)是一种返回单个值的数据库对象,封装了特定的计算或操作逻辑。与存储过程不同,函数可以在SQL语句中调用,返回的结果可以直接用于查询或其他计算。存储过程和函数是MySQL中强大的工具,提供了封装和复用SQL代码的能力。

良月柒 1003
上一篇: mysql left join on_mysql,left join on
下一篇: mysql使用bka_MySQL Batched Key Access (BKA)原理和设置使用方法举例
少年梁大锤
博客等级 码龄6年 28粉丝 1415原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值