最全总结,聊聊 Python 数据处理全家桶(存储过程篇)

2023-06-18 0 1,025

译者:星安果

最全总结,聊聊 Python 数据处理全家桶(存储过程篇)

1.序言

我们好,我是安果!

假如工程项目牵涉繁杂的 SQL 处置,就能将那些操作方式PCB成储存操作方式过程,申明入参及出参,方便快捷间接初始化

第一集该文将谈谈怎样采用 Python 继续执行存储操作方式过程

2.储存操作方式过程

储存操作方式过程,全称作 Stored Procedure

能将它看作两个USB,外部会PCB许多常用的操作方式,能间接展开初始化

储存操作方式过程的常用操作方式如下表所示:

2-1管理工作储存操作方式过程

建立查阅删掉

#1、建立两个储存操作方式过程#储存操作方式过程中文名称作:xagdelimiter $create procedure xag()begin…end $#2.1透过资料库名查阅大部份储存操作方式过程#比如说:资料库名叫xagselect name from mysql.proc where db =xag and type =PROCEDURE;#2.2查阅储存操作方式过程中状况重要信息show procedure status;#3.透过储存操作方式过程中文名称,删掉两个储存操作方式过程DROP PROCEDURE IF EXISTS xag;

当中

采用 create procedure 储存操作方式过程中文名称建立两个储存操作方式过程,接著在 begin 和 end 间撰写具体内容的操作方式方法论

2-2变量定义及赋值

采用关键字 declare 能定义两个变量

#变量定义#比如说:定义两个变量name,类型为字符串#默认值为 null…declare name varchar(255) default null;…

给变量赋值有2 种方式:普通 set 语法、select into 语法

当中

set 语法能透过表达式设置变量的值select into 语法是透过查阅资料库表,将查询结果设置到变量中

#变量定义declare name varchar(255) default null;#变量赋值# set语法set name =xag;# select into语法#查阅nametable表中的第一条记录中的name值,保存到name变量中select name into name from nametable limit 1;

2-3条件判断 if

比如说,透过年龄判断年级( if 语句)

declare age int default 23;declare grade varchar(255) default null;# if语句if age <=5 thenset grade =幼儿园;elseif age >=6 and age <12 thenset grade =小学;elseif age >=12 and age <15 thenset grade =初中;elseif age >=15 and age <18 thenset grade =高中;elseif age >=18 thenset grade =其他;end if;…

2-4循环 while

比如说,计算1-10数值的和,设置到变量 total 上

#总和declare total int default 0;#结束值declare endnumber int default 10;#临时值declare temp int default 0;# while循环while temp <= endnumber do#设置值set total = total + temp;set temp = temp +1;end while;…

2-5入参和出参

为了使撰写的储存操作方式过程更加实用,我们需要在常用储存操作方式过程时,设置出参和入参

语法格式如下表所示:

#建立两个储存操作方式过程create procedure procename([in/out/inout]参数名参数类型)

当中

默认传入值为入参,即 inout 代表出参,作为返回值返回假如设置为 inout,则代表既能作为出参,也能作为入参

3.实战一下

采用 Python 初始化储存操作方式过程非常方便快捷

首先,我们撰写两个储存操作方式过程

比如说,我这里定义了两个储存操作方式过程,传入两个入参和两个出参,将两个入参的乘积作为出参返回

#定义两个储存操作方式过程delimiter $create procedure nummulti(in num1 int,in num2 int,out multiplyresult int)begin#两个入参相乘,然后设置到出参中去set multiplyresult = num1* num2;end $

然后,在资料库中展开初始化测试

采用关键字 call 初始化储存操作方式过程,采用 select 查看返回值

#初始化储存操作方式过程call nummulti(1,3,@multiplyresult);select @multiplyresult;

接著,利用资料库配置重要信息建立连接及游标对象

import pymysqlPYMYSQLCONNDICT ={“host”:127.0.0.1,”port”:3306,”user”:root,”passwd”:root,”db”:testdb}#资料库连接dbconn = pymysql.connect(**PYMYSQLCONNDICT)#游标dbcursor = dbconn.cursor(cursor=pymysql.cursors.DictCursor)

返回值

xecute(SELECT @nummulti0,@nummulti1,@nummulti2)#出参值outputresult = dbcursor.fetchone()[@nummulti2]#出参值print(outputresult)

需要注意的是,假如储存操作方式过程牵涉到更新、新增等操作方式,需要显式初始化 commit()函数,才会真正提交到资料库中

4.最后

上面仅仅罗列出储存操作方式过程的常用语法,包含 case 条件分支处置、repeat 和 loop 循环能自己去扩展学习

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务