MySQL存储过程写法总结
1、创建无参存储过程。
create procedure product()
begin
select * from user;
end;
一条简单的存储过程创建语句,此时调用的语句为:
call procedure();
##注意,如果是在命令行下编写的话,这样的写法会出现语法错误,即再select 那一句结束
mysql就会进行解释了,此时应该先把结尾符换一下:
delimiter //
create procedure product()
begin
select * from user;
end //
最后再换回来
delimiter ;
2、创建有参存储过程
有参的存储包括两种参数,
一个是传入参数;
一个是传出参数;
例如一个存储过程:
create procedure procedure2(
out p1 decimal(8,2),
out p2 decimal(8,2),
in p3 int
)
begin
select sum(uid) into p1 from user where order_name = p3;
select avg(uid) into p2 from user ;
end ;
从上面sql语句可以看出,p1和p2是用来检索并且传出去的值,而p3则是必须有调用这传入的具体值。
看具体调用过程:
call product(); //无参
call procedure2(@userSum,@userAvg,201708); //有参
当用完后,可以直接查询userSum和userAvg的值:
select @userSum, @userAvg;
结果如下:
+----------+----------+
| @userSum | @userAvg |
+----------+----------+
| 67.00 | 6.09 |
+----------+----------+
1 row in set (0.00 sec)
3、删除存储过程
一条语句: drop procedure product; //没有括号后面
4、一段完整的存储过程实例:
-- Name: drdertotal
-- Parameters : onumber = order number
-- taxable = 0 if not taxable,1if taxable
-- ototal = order total variablecreate procedure ordertotal(
in onumber int,
in taxable boolean,
out ototal decimal(8,2)
) commit 'Obtain order total, optionally adding tax'
begin-- Declare variable for totaldeclare total decimal(8,2);-- Declare tax percentagedeclare taxrate int default 6;--Get the order totalselect Sum(item_price*quantity)from orderitemswhere order_num = onumberinto total;--Is this taxable?if taxable then--Yes, so add taxrate to the totalselect total+(total/100*taxrate) into total;end if;--Add finally, save to out variableselect total into ototal;
end;
上面存储过程类似于高级语言的业务处理,看懂还是不难的,注意写法细节
commit关键字:它不是必需的,但如果给出,将在show procedure status的结果中给出。
if语句:这个例子给出了mysqlif语句的基本用法,if语句还支持elseif和else子句。
通过show procedure status可以列出所有的存储过程的详细列表,并且可以在后面加一个
like+指定过滤模式来进行过滤。
MySQL存储过程写法总结相关推荐
- php mysql存储过程写法_mysql存储过程写法
都说不懂数据库的程序员不是合格的程序员,那么你知道MySQL存储过程应该怎么写吗? MySQL存储过程写法 可以使用 CREATE PROCEDURE 语句创建存储过程. 数据库存储过程语法格式如下: ...
- mysql过程的写法,存储过程写法是什么,mysql存储过程写法
存储过程写法是什么存储过程的写作是什么,存储过程的编写如下:1 .用代码[创建进程名]创建一个存储过程:2.用[EXECSP _ NAME]代码调用存储过程. 操作环境:Windows7系统,微软vi ...
- mysql 存储过程写法以及函数说明
create PROCEDURE proc_insertYJMX( in_ptzf varchar(1000), -- 普通罪犯编号 如1,2,2,3,最后要拼接一个逗号 in_tgzf varcha ...
- mysql 存储过程写法
mysql存储过程的创建,删除,调用及其他常用命令 mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin --- en ...
- mysql 存储过程写法(转)
mysql存储过程的创建,删除,调用及其他常用命令 mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin --- en ...
- mysql存储过程写法—动态参数运用
--删除 双击代码全选 1 drop procedure if exists up_common_select --创建 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- mysql存储过程写法简书_Mysql存储过程
存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储 ...
- 不愧是阿里大佬,mysql存储过程写法案例
容器化时代来了 虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生. 虚拟化技术演进 (1)物理机时代:多个应用程序可能会跑在一台机器上. (2)虚拟机时代:一台物理 ...
- mysql无级分销_3级分销(mysql存储过程写法)
BEGIN DECLARE sTemp TEXT ; /*父id*/ DECLARE recomsTempChd TEXT ; /*子id*/ DECLARE v_memberno INT DEFAU ...
- MySQL 存储过程的写法
最近因为公司需要做将Oracle 转换为MySQL,其中包含存储过程,所以就对MySQL存储过程的写法做了一些研究. DROP PROCEDURE IF EXISTS ch_passw; CREA ...
最新文章
- xmpp muc 群聊协议 1
- 云炬金融每日一题20211012
- 如何在网络中成对使用光纤收发器?
- 奋斗吧!我们为之奋斗的正则表达式
- MySQL online create index实现原理
- 冒烟测试正确名称是踩雷测试,雷区测试
- mkdir命令(转)
- C语言也能干大事第十四节(如鹏基础)
- 深入学习ElasticSearch(四)——mapping的详细讲解
- Windows桌面图标缓存
- Excel:INDEX与MATCH函数
- VC++,6.0 MFC设计--- 图形界面
- 【obs】libobs-winrt :CreateDispatcherQueueController
- linux内核zfs,Linus Torvalds回应用户抱怨:不建议使用 ZFS On Linux
- 一台计算机多个显示,一台计算机如何有两个显示器并显示不同的内容?
- 【深入设计模式】单例模式—从源码分析内部类单例、枚举单例以及单例模式在框架中的应用
- 学生管理系统V1.0
- 如何开好项目例会︱中科南京软件技术研究院PMO项目主管薛晓娜
- python函数手册 stata_Python 与 Stata 配合批量转换数据
- 计算机网络有什么特征,计算机网络的基本特征有哪些?
热门文章
- ubuntu用户磁盘空间分配--quota
- Android FFmpeg集成
- [RedHat] RHCE_RHEL6_实战精品 6.postfix邮件服务器
- 如何批量把下载QQ空间相册图片
- 游戏机生产厂家世界OL破甲刀战详细攻略
- 一分钟学会看k线图_教你一分钟就能学会看k线图 不信来试 (图文)
- Codeforces Round #685 (Div. 2) (D(博弈) E1 E2(交互))
- vue鼠标经过效果实现
- 【今日CV 计算机视觉论文速览 第150期】Fri, 2 Aug 2019
- markdown合并单元格