MySQL的存储过程

MySQL系统变量 会话变量,用户变量、mysql8.0的全局变量持久化 需要添加 session 关键字,有时也把会话系统变量称为 local 变量 局部变量。在mysql服务实例运行期间他们的值不能使用set 动态修改,属于特殊的全局系统变量。需要添加 global 关键字,有时把全局系统变量简称 全局变量。如果不写(global、session)默认会话级别。 阅读详情

概念
MySQL5.0版本开始支持存储过程,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法,存储过就是数据库SQL与层层面的代码封装与重用

特性
1.有输入输出参数,可以声明变量,有if/else/case/while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能

2.函数的普通特性:模块化,封装,代码复用

3.速度快,只有首次执行需要经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤

格式
创建存储过程


-- 创建存储过程
delimiter $$
create procedure proc01()
begin
    select empno,ename from emp;
end $$
delimiter ;
-- 调用存储过程
call proc01;
定义变量
局部变量
用户自定义,在begin/end块中有效


delimiter $$
create procedure proc02()
begin
    declare var_name01 varchar(20) default 'aaa';  -- 声明/定义变量
    set var_naem01 = 'zhangsan'; -- 给变量赋值
    select var_name01; -- 输出变量的值
end $$
dilimiter ;
call proc02();
用户变量
用户自定义,当前会话(连接)有效.类比java的成员变量

delimiter $$
create procedure proc04()
begin
    set @var_name01 = 'beijing';
    select @var_name01;
end $$
dilimiter ;
call proc04();
select @var_name01; -- 外部也是可以使用用户变量
系统变量
1.系统变量有分为全局变量与会话变量

2.全局变量在MYSQL启动的时候由服务器自动将他的初始化为默认值,这些默认值可以通过更改my.ini这个文件来更改

3.会话变量在每次建立一个新的连接的时候,由MYSQL来初始化,MYSQL会将当前所有全局变量的值复制一份,来作为会话变量

4.也就是说,如果在建立会话以后,没有手动更改过会话变量与全局变量的值,那所有这些变量的值都是一样的

5.全局变量与会话变量的区别在于,对全局变量的修改会影响整个服务器,但是对会话变量的修改,只会影响到当前的会话(也就是当前的数据库连接)

6.有些系统变量的值是可以利用语句来动态进行更改的,但是有些系统变量的值缺是只读的,对于那些可以更改的系统变量,我们可以利用set语句进行更改

系统变量-全局变量

由系统系统,在整个数据库中有效

存储过程
存储过程传参-in
in表示传入的参数,可以传入数值或者变量,即使传入变量,并不会改变变量的值,可以内部更改,仅仅作用在函数范围内

delimiter $$
create procedure proc06(in param_empno int)
begin
    select*from emp where empno = param_empno
end $$
delimiter ;
call proc06(1001);
 多个参数传参

存储过程传参-out
out表示从存储过程内部传值给调用者

存储过程传参-inout
inout表示从外部传入的参数经过修改后可以返回的变量,既可以使用传入变量的值也可以修改变量的值(即使函数执行完)

流程控制
流程控制-判断
IF语句包含多个条件判断,根据结果为TURE和FALSE执行语句,与编程语言中的if、else if、else语法类似,其语法格式如下

-- 存储过程-if
-- 案例1
-- 输入学生的成绩,来判断成绩的级别
/*
score<60:不及格
score>=60 , score<80 :及格
score>=80 , score<90 :良好
score>=90 , score<=100 :优秀
score>100 :成就错误
*/
delimiter $$
create procedure proc_12_if (in score int)
begin
    if score<60 then select '不及格';
    elseif score>=60 and score<80 then select '及格';
    elseif score>=80 and score<90 then select '良好';
    elseif score>=90 and score<=100 then select '优秀';
    else select '成绩错误'
    end if;
end $$
delimiter ;
 
set @score=55;
call proc_12_if(@score)
-- 输入员工的名字,判断工资的情况
/*
sal<10000 :适用薪资
sal>=10000 and sal<20000 :转正薪资
sal>=20000 :元老薪资
*/
delimiter $$
create procedure proc_13_if(in in_ename varchar)
begin
    declare var_sal decimal(7,2);  -- 定义局部变量,7个长度,2个小数 
    declare result varchar(20);
    select sal into var_sal from emp where ename=in_eanme;  -- 将值赋给局部变量
    if var_sal <10000 then set result ='适用薪资';
    elseif var_sal <20000 then set result ='转正薪资';
    else set result ='元老薪资';
    end if;
    select result;
end$$
delimiter ;
 
-- 调用
call proc_13_if('刘备');
流程控制语句-case 
 CASE是另一个条件判断语句,类似于编程语言中的switch语法

语法一:当case后面的语句与when后面的语句相等时,则会执行then后面的语句,如果均不匹配则执行else

语法二:直接写case 当when后面的条件成立则执行then后面的语句,如果都不成立,则执行else

-- 流程控制语句:case
/*
支付方式:
    1.微信支付
    2.支付宝支付
    3.银行卡支付
    4.其他支付
*/
-- 格式1
delimiter $$
create procedure proc14_case(in pay_type int)
begin
    case pay_type 
    when 1 then select '微信支付';
    when 2 then select '支付宝支付';
    when 3 then select '银行卡支付';
    else select '其他方式支付';
    end case;
end$$
delimiter ;
 
call proc14_case(2);
call proc14_case(3);
-- 语法二
-- 输入学生的成绩,来判断成绩的级别
/*
score<60:不及格
score>=60 , score<80 :及格
score>=80 , score<90 :良好
score>=90 , score<=100 :优秀
score>100 :成就错误
*/
delimiter $$
create procedure proc_15_case (in score int)
begin
    case
    when score<60 then select '不及格';
    when score>=60 and score<80 then select '及格';
    when score>=80 and score<90 then select '良好';
    when score>=90 and score<=100 then select '优秀';
    else select '成绩错误'
    end case;
end $$
delimiter ;
 
call proc_15_case(88);
控制流程-循环
概述

循环是一段在程序中只出现一次,但可能会连续运行多次的代码

循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环

循环分类

while、repeat、loop

循环控制

leave 类似于break,跳出,结束当前所在的循环

iteater 类似于continue,继续,结束本次循环,继续下一次

while循环


-- 需求:向表中添加指定条数据
-- while
delimiter $$
create procedure proc16_while(in insertCount int)
begin
    declare i int default 1;  -- 设置循环的增量
    label:while i<=insertCount do insert into user(id,username,password) values(i,concat('user-',i),'123456');
    set i=i+1;
end while label;
end$$
delimiter ;
 
 
call proc16_while(10);
-- 需求:向表中添加指定条数据
-- while+leave
delimiter $$
create procedure proc16_while(in insertCount int)
begin
    declare i int default 1;  -- 设置循环的增量
    label:while i<=insertCount do insert into user(id,username,password) values(i,concat('user-',i),'123456');
    if i=5 then leave label;   -- 如果i=5则跳出循环
    set i=i+1;
end while label;
end$$
delimiter ;
 
 
call proc16_while(10);
repeat循环
格式

-- 存储过程-循环控制-repeat
 
delimiter $$
create procedure proc18_repaet(in insertCount int)
begin
    declare i int default 1;
    label:repeat
        insert into user(uid,username,password)values(i,concat('user-',i),'123456');
        set i = i+1;
        until i>inserCount  -- 这里不能写; 表示跳出循环
        end repeat label;
        select '循环结束';
end$$
delimiter ;
 
call proc18_repeat(100);
loop循环


-- 存储过程-循环控制-loop
 
delimiter $$
create procedure proc19_loop(in insertCount int)
begin
    declare i default 1;
    label:loop insert into user (uid,username,password) values (i,concat('user-')i,'123456');
    set i= i+1;
    if i>insertCount then leave label;
    end if;
    end loop label;
end$$
delimiter ;
 
call proc19_loop()
游标
游标(cursor)是庸才存储查询结果集的数据类型,在存储过程和函数中可以使用光标对结果集进行循环的处理,光标的使用包括光标的声明、OPEN、FETCH、CLOSE

-- 操作游标(cursor)
-- 声明游标
-- 打开游标
-- 通过游标获取值
-- 关闭游标
-- 需求:输入一个部门名,查询该部门员工的编号、名字、薪资,将查询的结果集添加游标
delimiter $$
create procedure proc19_cursor(in in_danme varchar(50))
begin
 -- 定义局部变量
    declare var_empno int;
    declare var_ename varchar(50);
    declare var_sal decimal(7,2);
 -- 声明游标
    declare my_cursor cursor for select empno,ename,sal from dept a,emp b where a.deptno=b.deptno and a.dname=in_dname;
 -- 打开游标
    open my_cursor;
 -- 通过游标获取值
--     fetch my_cursor into var_empno,var_ename,var_sal;
--     select var_empno,var_ename,var_sal;  -- 注意:以上两句只可以获取一个数据,因为游标是一次一行,所以采用循环
    label:loop
        fetch my_cursor into var_empno,var_ename,var_sal;
        select var_empno,var_ename,var_sal; 
    end loop label;
 -- 关闭游标
 close my_cursor;
end$$
delimiter ;
 
call proc19_cursor('销售部');
异常处理-HANDLER句柄
MySQL存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现

格式

在语法中,变量声明、游标声明、handler声明必须按照先后顺序书写的,否则创建存储过程出错

DECALARE handler_action 创建句柄

FOR 后面为条件值,为什么异常提供处理

statment 当没有数据发现这个异常发生时采取什么措施

handler_action :{

        CONTINUE    继续执行

        EXIT 退出

        UNDO 取消(目前MySQL不支持)

}

condition_value :{

mysql_error_code  错误码

condition 条件名

SQLWARNING   SQL警告

NOT FOUND  数据没有发现

SQLEXCEPTION  SQL异常

}

/*用于测试句柄,改造上面游标代码会出现1329错误代码的情况*/
-- 操作游标(cursor)
-- 声明游标
-- 打开游标
-- 通过游标获取值
-- 关闭游标
-- 需求:输入一个部门名,查询该部门员工的编号、名字、薪资,将查询的结果集添加游标
delimiter $$
create procedure proc21_cursor_handler(in in_danme varchar(50))
begin
 -- 定义局部变量
    declare var_empno int;
    declare var_ename varchar(50);
    declare var_sal decimal(7,2);
 -- 定义标记值
    declare flag int default 1;
 -- 声明游标
    declare my_cursor cursor for select empno,ename,sal from dept a,emp b where a.deptno=b.deptno and a.dname=in_dname;
 -- 定义句柄:定义异常的处理方式
 /*
 1:异常处理完之后,程序应该如何执行
        continue :继续执行剩余代码
        exit:直接终止程序
        undo:不支持
 2:触发条件
        条件码:1329.....
        条件名:
                    SQLWARNING
                    NOT FOUND
                    SQLEXCEPTION
 3:异常触发之后执行什么代码
        设置flag的值 -> 0 
 */
  declare continue handler for 1329 set flag=0 ;
 -- 打开游标
    open my_cursor;
 -- 通过游标获取值
--     fetch my_cursor into var_empno,var_ename,var_sal;
--     select var_empno,var_ename,var_sal;  -- 注意:以上两句只可以获取一个数据,因为游标是一次一行,所以采用循环
    label:loop
        fetch my_cursor into var_empno,var_ename,var_sal;
        -- 判断flag的值如果为1则执行,否则不执行
        if flag =1 then 
         select var_empno,var_ename,var_sal; 
        else leave label;
        end if;
    end loop label;
 -- 关闭游标
 close my_cursor;
end$$
delimiter ;
 
call proc19_cursor('销售部');

MySQL---存储过程(局部变量、用户变量、系统变量(全局变量、会话变量)、传参(in、out、inout)) 局部变量:用户自定义,在begin/end块中有效--语法: 声明变量 declare var_name type [default var_value];begin-- 定义局部变量end $$delimiter;-- 调用存储过程MySQL中还可以使用col_name参数表示查询的字段名称;var_name参数是变量的名称;table_name参数指表的名称;condition参数指查询条件。 阅读详情

相关推荐

centos 添加新硬盘,对根目录扩容

本地安装了虚拟机,系统为centos7,使用过程中,渐渐地发现磁盘容量不够用了,于是在虚拟机中新增了一块硬盘。 进入系统内查看: sdb是新增的硬盘,大小为40g。 接下来有两种方式,一种是普通方式直接挂载。https://blog.youkuaiyun.com/qq_39314099/article/details/106200322 这样的话只有在挂载点的目录下操作才能使用到这个新硬盘,不是很理想。 还有一种方式lvm,逻辑卷管理的方式。 LVM简单介绍: 它是 Linux 下对磁盘分区进行管

qq_39314099的博客 1万+

mysql的会话变量,全局变量,状态信息

mysql数据库系统自定义的参数和系统的运行参数都非常重要,他们决定了数据库运行的方式。例如是否自动提交,事务隔离级别这些变量。我们可以通过修改系统的会话变量和全局变量来影响数据库运行(其中有些变量修改需要修改重启才能生效)。。。。。。变量设置是过程,我们最终目的是要看状态(见下图),查看数据库状态信息是否符合要求。 mysql变量分为会话级别和全局级别:用户变量和会话级别的...

氤氲紫镜的空间 5282

NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()

Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to()输出(llama) (base) [root@localhost home]# nvidia-smi Unable to determine the device handle for GPU0000:09:00.0: Unknown Error。这是典型的“孤儿进程”,但它还是。(僵尸进程),占用 GPU 资源。如果进程仍然不消失,并且。,这意味着它的父进程是。

m0_61636632的博客 2096

MySQL进阶(一):变量、存储过程(procedure)、函数(function)

一、变量 1.1 系统变量 1.1全局变量:针对所有,关键字global 1.2会话变量:只针对当前会话,关键字session 1.查看所有的系统变量 show GLOBAL|session VARIABLES;#全局|会话 2.查看满足条件的部分系统变量 show GLOBAL|session VARIABLES like '%ch%';#全局|会话 3.查看指定的某个系统变量的值 select @@session.系统变量名; select @@global.系统变量名; 4.为某个系统变量赋

白骨梦儿 1772

搞定汽车座椅电机EMC超标:一个PCB滤波板的实战设计与避坑心得

本文详细介绍了汽车座椅电机EMC超标问题的解决方案,通过PCB滤波板的实战设计,解决了传导发射测试超标问题。文章分享了在空间受限条件下的滤波电路架构设计、接地系统优化及迭代验证过程,为汽车直流电机的EMC整改提供了实用方法论。

weixin_30336061的博客 380

洛谷 P5736 【深基7.例2】质数筛

题目描述 输入 n(n\le100)n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。 输入格式 无 输出格式 无 输入输出样例 输入 #1 复制 5 3 4 5 6 7 输出 #1 复制 3 5 7 板子题,使用一下线性筛 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using n

qq_37978559的博客 1117

MySQL之变量,存储过程和函数

变量 系统变量: 全局变量 会话变量 自定义变量: 用户变量 局部变量 系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面 注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别 使用步骤: 1、查看所有系统变量 show global|【session】variables; 2、查看满足条件的部分系统变量 show global|【ses...

谁D了我的BUG 496

实战指南:如何优雅解决SpringBoot3与Mybatis-Plus的版本兼容性问题

本文深入解析SpringBoot3与Mybatis-Plus的版本兼容性问题,提供实战解决方案。通过Maven依赖排除策略、Gradle配置方案及自动配置覆盖策略,有效解决包冲突和初始化顺序问题,确保项目平稳升级。适用于开发者快速解决SpringBoot3与Mybatis-Plus的集成难题。

weixin_28432777的博客 597

什么是mysql存储过程_mysql 存储过程

存储过程1.什么是存储过程一组可编程函数,是为了满足特定功能的SQL语句集存储过程就是具有名字的一段代码,用来完成个特定的功能创建的存储过程保存在数据库的数据字典中​2.为什么要用存储过程将重复性很高的操作,封装到一个存储过程中,简化了对这些SQL的调用批量处理统一接口,确保数据安全相对于Oracle来说,Mysql的存储过程相对功能较弱,使用较少​3.存储过程的创建和调用1. delimiter...

weixin_31470259的博客 9119

【MATLAB强化学习工具箱】学习笔记--在Simulink环境中训练智能体Create Simulink Environment and Train Agent

Simulink中便于搭建各类动力学与控制模型,通过将原有的控制器替换为AI控制器,可以方便使用已有模型,提供增量效果。 本节的重点是如何引入Simulink模型作为env,其他的内容在之前的文章中已有说明。 以水箱模型watertank为例,如下图所示: 采用PI控制器,控制效果如下所示: 将此PI控制器替换为神经网络控制器后,系统架构如下图所示: 具体替换策略如下所示: (1)删去PID控制器; (2)增加RL Agent模块; (3)观测器模块: 观测向量为:,其中...

bear_miao的博客 1万+

卡尔曼滤波原理详解及系统模型建立(simulink)

卡尔曼滤波原理详解及系统模型建立(simulink) 卡尔曼滤波器 卡尔曼滤波器是在上个世界五六十年代的时候提出的,到今天已经有六十年左右的时间,但卡尔曼滤波算法不管在控制、制导、导航或者通讯方面对数据的预测能力依然处在一个不可撼动的位置上,但是很多人对于其算法内部的工作原理究竟是怎么运作的依然不理解,所以在工程上很多人都只是把卡尔曼滤波当成是一种“黑箱”预测算法,并不清楚内部原理。但实际上没有任...

weixin_43942325的博客 7万+

MySQL存储过程详解 mysql 存储过程

mysql存储过程详解 1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做

qq_28807077的博客 2788

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署时可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 227

mysql 存储过程复制_MySQL存储过程

存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。创建存储过程CREATE PROCEDURE productpricing()BEGINSELECT AVG(prod_price)AS priceaverageFROM products;end;此存储过程名为productpricing,用CREATE PROCEDURE ...

weixin_33553051的博客 1627

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

mysql存储过程call_mysql call 存储过程

PHP调用MYSQL存储过程实例PHP调用MYSQL存储过程实例标签:mysql存储phpsqlquerycmd2010-09-26 11:1011552人阅读评论(3)收藏举报实例一:无参的存储过程$conn = mysql_connect('localhost','root','root') o...文章thinkyoung2016-01-20544浏览量存储过程实例存储过程:是为了...

weixin_34981046的博客 2500

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mysql 存储过程 总结_Mysql存储过程总结

1.关于MySQL的存储过程存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。2MySQL存储过程的创建(1).格式MySQL存储过程创建的格式:CREATE PROCEDURE过程名([过程参数[,......

weixin_33384949的博客 945

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MySQL 存储过程

存储过程(Stored Procedure)是一种存储在数据库中的程序,可供外部程序调用的一种数据库对象。存储过程是为了完成特定功能的 SQL 语句集,提供许多过程语言的功能,例如变量定义、条件语句、循环语句、游标以及异常处理等。存储过程没有返回值,但是它可以通过输出参数实现数据的返回,同时还可以产生一个查询结果返回到客户端。存储过程经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)调用执行。存储过程思想上很简单,就是数据库 SQL 语句的封装与重用。

Doublelv 的博客专栏。 3848

mysql fetch 存储过程_【MySQL】存储过程及游标的使用

1. 写在前面本篇内容及部分示例代码基于《MySQL必知必会》,所需要获得和运行的一切东西,可以在http://www.forta.com/books/0672327120/ 上找到,包括两个SQL脚本,create.sql 和 populate.sql。本篇内容的理解同时也参考了MySQL8.0的官方文档《MySQL 8.0 Reference Manual》,若有理解不到位的地方,有能力的小...

weixin_33557333的博客 1358

什么是mysql存储过程_什么是mysql存储过程

MySQL中的存储过程指的是存储在数据库中的SQL语句集合,当创建好存储过程后在运行时提供所需参数,存储过程就可以以代码指定的方式使用参数执行并返回值在MySQL中提供了创建存储过程的能力。存储过程是MySQL以及其他数据库管理系统中的强大功能。接下来在文章中将为大家具体介绍MySQL中的存储过程,具有一定的参考作用,希望对大家有所帮助。【推荐课程:MySQL教程】存储过程:存储过程指的是存储在数...

weixin_39928233的博客 912

[MySQL]存储过程

本篇文章阐述的原则是“以吾之理解,着重之阐述”,因此没有那么细致。 如果文中阐述不全或不对的,多多交流。 存储过程的细节很多,而在实际工作中又未必都能涉及这些细节,工作时间一长,就可能忘记,于是特来写这篇文章,既是为自己做个笔记,也是跟大家分享存储过程的学习和使用方法。 参考笔记三,P34.1、P3...

qq_35485206的博客 1420

mysql存储过程调试_MYSQL存储过程调试过程

mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有几种简单的方式追踪执行过程:1、用一张临时表,记录调试过程;2、直接在存储过程中,增加select xxx,在控制台查看结果:3、把存储过程的sql复制到navicat查询中,然后SET @num使用自定义变量。实际应用场景是三种方法都会用到,结合不同的场景使用。方法1适用于有多条数据处理,处理结果无法通过变量来存储...

weixin_34954308的博客 3801

mysql open 存储过程_Mysql 存储过程

存储过程学习文章开始前,首先给出本文示例表allIntersection。本文中的示例是在Navicate for MySQL中进行的。一.存储过程的创建与调用1.基本语法及示例:创建存储过程的基本语法:Java代码 create procedure sp_name()begin………end调用此存储过程基本语法:Sql代码call sp_name();注意:存储过程名称后面必须加括号,哪怕该存...

weixin_35665984的博客 1480

mysql存储过程 类型_MySQL存储过程

TopNSD DBA2 DAY051 案例1:创建存储过程1.1 问题存储过程名称为p1功能显示user表中 shell是/bin/bash的用户个数调用存储过程p11.2 步骤实现此案例需要按照如下步骤进行。步骤一:存储过程基本使用1)创建存储过程mysql> delimiter // //定义定界符mysql> create procedure say() //sa...

weixin_32175667的博客 917

mysql 调用 存储过程_MySQL 存储过程的基本用法

我们大家都知道MySQL存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程。在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务...

weixin_39724004的博客 1276
上一篇: Kubernetes 0-1 Pod中的livenessProbe和readinessProbe解读
下一篇: HBase入门:查询中常用的Filter总结
fastrunner2003
博客等级 码龄24年 36粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值