mysql存储过程基础知识

Anaconda镜像源切换全攻略:从清华源到恢复默认设置的完整流程 本文详细介绍了Anaconda镜像源的管理与优化,重点讲解了如何配置清华源以提升国内下载速度。内容涵盖镜像源工作原理、清华源详细配置步骤、多源管理策略、常见问题排查以及如何安全恢复默认设置,帮助用户构建完整的镜像源管理体系。 阅读详情

cursor游标应用

select * from tbl_student0101;

drop procedure if exists crt_std;
delimiter //
create procedure crt_std()
BEGIN
	declare std_nm char(20);
	declare std_age int;
	declare std_tel char(11);
	declare std_cur cursor for select name, age, tel from tbl_student0101;
	open std_cur;
	LOOP
		fetch std_cur into std_nm, std_age, std_tel;
		select std_nm, std_age, std_tel;
	END LOOP;
	close std_cur;
END;
//
DELIMITER  ;
call crt_std();

if条件和变量的使用


drop procedure if exists pro_name;
delimiter$
create procedure pro_name(in height int, out description varchar(100))
begin
	declare max_len int default 180;
	declare mid_len int default 170;

	if height >= max_len then
		set description='nice';
		
	elseif height > mid_len and height < max_len then
		set description='pretty';
	else
		set description='bad';
	end if;
end$
delimiter;
call pro_name(200, @description);

select @description;

在这里插入图片描述
@var_nm: 是用户会话变量,生命周期是整个会话期间,相当于全局变量;
declare var_nm:是局部变量,生命周期在begin和end之间;
@@var_nm:系统变量

case的使用
在这里插入图片描述

# 方式一
drop procedure if exists pro_name;
delimiter$
create procedure pro_name(in height int, out description varchar(100))
begin
	declare max_len int default 180;
	declare mid_len int default 170;
	case height
		when 180 then 
			set description='nice';
	  when 170 then 
			set description='pretty';
		else 
			set description='bad';
	end case;
end$
delimiter;
call pro_name(170, @description);

select @description;
#方式二
drop procedure if exists pro_name;
delimiter$
create procedure pro_name(in height int, out description varchar(100))
begin
	declare max_len int default 180;
	declare mid_len int default 170;
	case
		when height > max_len then 
			set description='nice';
	  when height > mid_len and height < max_len then 
			set description='pretty';
		else set description='bad';
	end case;
end$
delimiter;
call pro_name(175, @description);

select @description;

while循环使用
while condition do
list
end while

drop procedure if exists pro_name;
delimiter$
create procedure pro_name(in cnt int)
begin
	declare total int default 0;
	while  cnt > 0 do
		set total =  total + 1;
		set cnt = cnt -1;
	end while;
	select total;
end$
delimiter;
call pro_name(25);

repeat使用
repeat
list
until condtion;
end repeat;

drop procedure if exists pro_name;
delimiter$
create procedure pro_name(in cnt int)
begin
	declare total int default 0;
	repeat
		set total =  total + 1;
		set cnt = cnt -1;
		until cnt<=0
	end repeat;
	select total;
end$
delimiter;
call pro_name(25);

loop循环,需要有退出条件,一般和leave一起使用
lable:loop
list
condition
leave lable;
end loop;

drop procedure if exists pro_name;
delimiter$
create procedure pro_name(in cnt int)
begin
	declare total int default 0;
	lable:loop
		set total = total + 1;
		set cnt = cnt - 1;
		if cnt <= 0 then
			leave lable;
		end if;
	end loop lable;
	select total;
end$

delimiter;
call pro_name(20);

游标的使用,退出条件是结果集fetch完

drop procedure if exists pro_name;
delimiter$
create procedure pro_name()
begin
	declare cnt smallint default 0;
	declare id int ;
	declare fr_nm varchar(45) default '';
	declare lt_nm varchar(45) default '';
	declare up_tm timestamp;
	declare cur_name cursor for select * from actor;
	select count(*) into cnt from actor;
	-- select cnt;
	open cur_name;
	lable:loop
		fetch  cur_name into id, fr_nm, lt_nm, up_tm;
		select id, fr_nm, lt_nm, up_tm;
		set cnt = cnt - 1;
		if cnt <= 0 then
			leave lable;
		end if;
	end loop lable;
	close cur_name;
end$

delimiter;
call pro_name();

存储函数
create function fun_name()
returns type
begin
list
return var_nm;
end;

drop function if exists func_nm;
delimiter$
create function func_nm(id int)
returns int
begin
	declare num int default 0;
	select count(*) into num from actor where actor_id=id;
	return num;
end$
delimiter;
select func_nm(2);
Android Audio基础——系统服务(二) AudioService 继承自 IAudioService.Stub。IAudioService.Stub 类很明显是通过 IAudioService.aidl 自动生成的。AudioService 位于 Binder Native 端。AudioManager 拥有 AudioService 的 Binder Proxy 端,是 AudioService 在客户端的一个代理。几乎所有客户端对 AudioManager 进行的请求,最终都会交由 AudioService 实现。 阅读详情

相关推荐

Kubernetes集群资源优化实战:Volcano调度器如何帮你省下30%GPU算力

本文详细介绍了如何通过Volcano调度器的Binpack策略优化Kubernetes集群中的GPU资源利用率,解决AI模型训练中的资源碎片化问题。通过实战配置和调优指南,帮助用户提升30%的GPU算力利用率,显著降低任务等待时间和硬件成本。

weixin_30832143的博客 507

MySQL 存储过程面试基础知识总结

存储过程(Stored Procedure)是一组 SQL 语句的集合,存储在数据库中,通过指定名称和参数调用执行。它主要用于提高性能、代码复用和增强安全性。提高性能:存储过程在数据库服务器端执行,减少了网络传输的次数。例如,当需要对大量数据进行复杂的查询和更新操作时,存储过程可以将这些操作封装在一起,一次执行完成,大大减少了网络通信开销。而且存储过程在第一次执行时会被编译,之后的调用可以直接执行编译后的代码,提高了执行效率。代码复用。

刘伟的博客 1167

WGCNA加权基因共表达网络分析(1)简介、原理

WGCNA简介 WGCNA(Weighted Gene Co-Expression Network Analysis, 加权基因共表达网络分析),鉴定表达模式相似的基因集合(module),解析基因集合与样品表型之间的联系,绘制基因集合之间的调控网络并鉴定关键调控基因 WGCNA适用于复杂的转录组数据(样本数目较多) 研究不同器官/组织类型和不同阶段的发育调控、生物和非生物胁迫的不同时间响应机制 WGCNA原理 原理概要 1.构建基因共表达网络:先构建基因共表达网络,通常利用两两基因之间的表达模式来计算

qq_44520665的博客 3万+

mysql存储过程的基础知识

node npm

wh柒八九的博客 784

Unity3d移动端性能优化

以下条目主要针对移动端,大部分也适合PC端 一、Profiler的使用 1.性能优化应贯穿项目开发的全过程,如需求(性能能不能达到要求)、设计、开发、测试等。不能开发结束才优化性能。 2.官方推荐的优化工具是【Window】->【Profiler】 3.确认瓶颈是CPU-bound(Gfx.WaitForCommands)还是CPU-bound(Gfx.WaitForPresent) 4.内存分析使用Memory Profiler 二、内存优作 5.减少内存收集的影...

zouxin_88的专栏 3057

利用ANSYS随机振动分析功能实现随机疲劳分析

本文介绍了ANSYS随机振动分析功能,以及利用该功能,按照Steinberg提出的基于高斯分布和Miner线性累计损伤定律的三区间法进行ANSYS随机疲劳计算的具体过程。在工程应用中,汽车、飞行器、船舶以及其它各种机械或零部件,大多是在随机载荷作用下工作,当它们承受的应力水平较高,工作达到一定时间后,经常会突然发生随机疲劳破坏,往往造成灾难性的后果。因此,预测结构或零部件的随机疲劳寿命是非常有必要的。在工程界,疲劳计算广泛采用名义应力法,即以S-N曲线为依据进行寿命估算的方法,可以直接得到总寿命。

qq_38220914的博客 7610

MySQL基础知识—存储过程和函数

介绍 存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合。 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程和函数的区别: 函数必须有返回值,存储过程没有 存储过程的参数可以使用IN、OUT、INOUT类型,而函数的参数只能是IN类型。 如果有函数从其他类型的数据库迁移到MySQL,可能因此需要将函数改造成存储过程。 相关操作 前提 确认用户是否具有相应的权限。 创建存储过程和函数——cr

kuangd_1992的博客 1450

5-DOF机械臂课程设计(一)之正逆运动学

文章目录基本要求基本概念关节坐标系的建立正运动学求解DH参数表的建立逆运动学求解多解下解的选取源码下载后续 基本要求 ​ 开发上位机程序,要求有良好的界面,能提供关节空间下和笛卡尔坐 标下表示的目标位姿点和中间若干经过点的输入功能,进行轨迹规划, 并控制机械臂沿轨迹运动,最终完成目标抓取的任务。 基本概念 连杆长度 :2个相邻关节轴线之间的距离 连杆扭角 :2个相邻关节轴线之间的角度 连杆偏距 :2个关节坐标系的X轴之间的距离 关节角度 :关节变量 计算时需要加初始角度偏移 关节坐标系的建立 ​ 根据《机

Rosen的博客 5857

MySql存储过程—1、SQL存储过程的基础知识

在深入理解MySq之前,我们先理下一些简单的问题 Q:什么是存储过程?(stored procedure) A:是一段写好的SQL代码,特别的就是它是存在数据库的目录里。所以外部程序可以直接调用数据库里面定义好的存储过程,另外数据库内部的触发器(trigger)、或者其他存储过程也可以调用它。 Q:存储过程有什么好处?有什么坏处? A: 先看看好处吧: 1、首先在性能上的提高,

rdarda的专栏 4337

多尺度变换(Multidimensional Scaling ,MDS)详解

介绍多尺度变换基本原理

5215

【RT-DETR涨点改进】全网独家首发、注意力改进篇 | ICLR 2026 | 引入 MHLA 多头线性注意力,关注不同的上下文区域,弥补卷积的长程依赖建模方面的不足,助力高效涨点,来自北京大学

🔥本文提出MHLA多头线性注意力模块,用于改进RT-DETR目标检测网络。MHLA通过恢复线性注意力的表达能力,在保持线性复杂度的同时,为网络提供高效的全局上下文建模能力。该方法解决了传统线性注意力在长序列建模中的"全局上下文坍塌"问题,使不同空间位置能关注不同上下文区域。实验表明,MHLA显著提升了RT-DETR在复杂背景、小目标和遮挡场景下的检测性能,且不增加显著计算开销。文章详细介绍了MHLA的原理、优势及8种改进方案,并提供了完整的代码实现和配置指南。

Ai缝合怪、助力小伙伴高效发论文 271

MYSQL 三、mysql基础知识 4(存储过程与函数)

含义:存储过程的英文是。它的思想很简单,就是一组经过预先编译的SQL 语句的封装。执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用 存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL语句全部执行。好处1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力2、减少操作过程中的失误,提高效率3、减少网络传输量(客户端不需要把所有的SQL 语句通过网络发给服务器)4、减少了SQL。

kkkkatoq的博客 1163

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

MySQL基础知识(六)——存储过程

一 .存储过程 1.定义: 存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。 2.SQL命令的执行过程: (1)输入SQL命令; (2)MySQL引擎对输入的SQL命令进行语法分析。 (3)引擎分析MySQL的语法正确后; (4)编译成MySQL引擎可以识别的命令。 (5)最后开始执行结果; (6)并将执行结果返回给客户端。     省略语法分...

third_的博客 392

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

MySQL中存储过程和存储函数以及触发器的基础知识

MySQL中提供存储过程与存储函数机制,我们姑且将存储过程和存储函数合称为存储程序。与一般的SQL语句需要先编译然后立即执行不同,存储程序是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,当用户通过指定存储程序的名字并给定参数(如果该存储程序带有参数)来调用才会执行。存储程序就是一条或者多条SQL语句和控制语句的集合,我们可以将其看作MySQL的批处理文件,当然,其作用不仅限于批处理。当想要在不同的应用程序或平台上执行相同的功能一段程序或者封装特定功能时,存储程序是非常有用的。

weixin_67201964的博客 792

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

MySQL基础知识_存储过程与触发器

MySQL基础知识_存储过程与触发器1,存储过程(了解) MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。简单理解: 存储过程其实就是一堆 SQL 语句的合并。中间加入了一些逻辑控制。优点: 存储过程一旦调试完成后,就可以稳定运行,(前提是,业务需求要相对稳定,没有变化) 存储过

weixin_41300542的博客 480

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

八、MySQL基础知识-存储过程和函数

#存储过程和函数–笔记分享 /* 存储过程和函数:类似于java中的方法 好处: 1、提高代码的重用性 2、简化操作 */ #存储过程 /* 含义:一组预先编译好的SQL语句的集合,理解成批处理语句 1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 */ #一、创建语法 CREATE PROCEDURE 存储过程名(参数列表) BEGIN 存储过程体(一组合法的SQL语句) END #注意: /* 1、参数列表包含三部分 参数模式 参数名

qq_20481521的博客 126

Mysql基础知识:存储过程和函数

Mysql 存储过程和函数 转载于:https://www.cnblogs.com/jx-yangbo/p/6392042.html

weixin_30376163的博客 130

MYSQL 存储过程1、SQL存储过程的基础知识

在深入理解MySq之前,我们先理下一些简单的问题 Q:什么是存储过程?(stored procedure) A:是一段写好的SQL代码,特别的就是它是存在数据库的目录里。所以外部程序可以直接调用数据库里面定义好的存储过程,另外数据库内部的触发器(trigger)、或者其他存储过程也可以调用它。 Q:存储过程有什么好处?有什么坏处? A: 先看看好处吧: 1、首先在性能上的提...

weixin_30832143的博客 76

Mysql存储过程入门知识

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

huahuagongzi9999的专栏 1613

该如何使用MySQL的存储过程?

存储过程的参数类型可以是IN、OUT和INOUT。根据这点分类如下: 1、没有参数(无参数无返回) 2、仅仅带 IN 类型(有参数无返回) 3、仅仅带OUT 类型(无参数有返回) 4、既带 IN 又带 OUT(有参数有返回) 5、带INOUT(有参数有返回) 注意: IN、OUT、INOUT 都可以在一个存储过程中带多个。 2、创建存储过程 语法: CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参..

知识记录 2万+

MySQL存储过程以及在JAVA中的程序调用

存储过程是一种存储在数据库中的程序(就像正规语言里的子程序一样),准确的来说,MySQL支持的“routines(例程)”有两种:一是我们说的存储过程, 二是在其他SQL语句中可以返回值的函数(使用起来和Mysql预装载的函数一样,如pi())。本文是为初学习MySQL存储过程的朋友写的,在本文中我们以在MySQL的CLI(command line interface)中建立一个存储过程的示例开始

nicegiving的专栏 1875

MySql创建存储过程

mysql 创建存储过程 一、存储过程的创建和调用 存储过程就是具有名字的一段代码,用来完成一个特定的功能。 创建的存储过程保存在数据库的数据字典中。 1.创建 – create procedure 存储过程名(参数1,参数2,·····) –存储过程开始和结束符号:BEGIN … END CREATE PROCEDURE add_matches(IN matcheNo INTEGER,IN teamNo INTEGER,IN playerNo INTEGER,IN won INTEGER,IN lo

ygl645192621的博客 786

MySQL中存储过程的简单使用案例

结合mysql+springboot简单调用存储过程

欢乐的马的博客 2542

mysql 分号 存储过程_Mysql之存储过程

1.进入到数据库中查看 是否有相关的存储过程数据show procedure status where Db='test';2.创建简单的存储过程create procedure hi() select 'hello';3. 调用存储过程call hi();事例:三、MySQL 存储过程特点创建 MySQL 存储过程的简单语法为:create procedure 存储过程名字()([in|out|...

weixin_32163411的博客 810

mysql 过程描述_mysql存储过程的简单介绍

在mysql高版本中存储过程非常的受用了,我们今天来了解一下mysql存储过程的一些简单用法也就是基础知识哦,具体如下。MySQL中,创建存储过程的基本形式如下:CREATE PROCEDURE sp_name ([proc_parameter[,...]])[characteristic ...] routine_body其中,sp_name参数是存储过程的名称;proc_parameter表示...

weixin_39671374的博客 258
上一篇: UE C代码格式化astyle配置
下一篇: 一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点。
最后冰吻free
博客等级 码龄12年 121粉丝 371原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值