MySQL基础-存储过程
程序员文章站
2022-04-10 13:59:35
存储过程 定义 :将一批为了完成特定功能的SQL语句集,根据传入的参数(也可没有),调用,完成单个sql语句更复杂的功能 存储过程思想很简单,就是SQL语句层面上的代码封装和重用 优点 :1) 可封装,并隐藏复杂的业务逻辑;2) 可回传值,且可接受参数 缺点 :因支持的编程语言不通,性能调校和撰写, ......
存储过程
定义:将一批为了完成特定功能的sql语句集,根据传入的参数(也可没有),调用,完成单个sql语句更复杂的功能
存储过程思想很简单,就是sql语句层面上的代码封装和重用
优点:1) 可封装,并隐藏复杂的业务逻辑;2) 可回传值,且可接受参数
缺点:因支持的编程语言不通,性能调校和撰写,受限于各种数据库系统
创建存储过程示例
delimiter $$ -- 创建存储过程 create procedure p_user( int m int, -- in 表示该参数是传入参数,不能当作返回值 int n int, out res int -- out 表示该参数是返回参数,只能作为返回值,不用于接收 -- inout 表示既可以接收传入的值也可以当作返回值 ) begin select username from user_info where uid between m and n; set res=0; end $$ delimiter ; -- 1.在mysql中调用 set @res=10 call p_user(2,4,10); -- 该语句报错 call p_user(2,4,@res) -- 正确的调用方式 select @res; -- 执行成功,@res变量的值发生改变 -- 2.在python中调用 pymysql连接mysql 获取到游标对象cursor 通过游标对象cursor.callproc('p_user',(2,4,10)) # 参数内部原理:@_p_user_0=2,@_p_user_1=4,@_p_user_2=10 游标对象cursor.execute('select @_p_user_2;') # 如果值发生改变,说明执行成功
上一篇: mysql多字段内容并到单字段中的操作
下一篇: angular点击下载文件