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存储过程写法总结相关推荐

  1. php mysql存储过程写法_mysql存储过程写法

    都说不懂数据库的程序员不是合格的程序员,那么你知道MySQL存储过程应该怎么写吗? MySQL存储过程写法 可以使用 CREATE PROCEDURE 语句创建存储过程. 数据库存储过程语法格式如下: ...

  2. mysql过程的写法,存储过程写法是什么,mysql存储过程写法

    存储过程写法是什么存储过程的写作是什么,存储过程的编写如下:1 .用代码[创建进程名]创建一个存储过程:2.用[EXECSP _ NAME]代码调用存储过程. 操作环境:Windows7系统,微软vi ...

  3. mysql 存储过程写法以及函数说明

    create PROCEDURE proc_insertYJMX( in_ptzf varchar(1000), -- 普通罪犯编号 如1,2,2,3,最后要拼接一个逗号 in_tgzf varcha ...

  4. mysql 存储过程写法

    mysql存储过程的创建,删除,调用及其他常用命令 mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin --- en ...

  5. mysql 存储过程写法(转)

    mysql存储过程的创建,删除,调用及其他常用命令 mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin --- en ...

  6. mysql存储过程写法—动态参数运用

    --删除 双击代码全选 1 drop procedure if exists up_common_select --创建 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  7. mysql存储过程写法简书_Mysql存储过程

    存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储 ...

  8. 不愧是阿里大佬,mysql存储过程写法案例

    容器化时代来了 虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生. 虚拟化技术演进 (1)物理机时代:多个应用程序可能会跑在一台机器上. (2)虚拟机时代:一台物理 ...

  9. mysql无级分销_3级分销(mysql存储过程写法)

    BEGIN DECLARE sTemp TEXT ; /*父id*/ DECLARE recomsTempChd TEXT ; /*子id*/ DECLARE v_memberno INT DEFAU ...

  10. MySQL 存储过程的写法

    最近因为公司需要做将Oracle 转换为MySQL,其中包含存储过程,所以就对MySQL存储过程的写法做了一些研究. DROP PROCEDURE IF EXISTS ch_passw;   CREA ...

最新文章

  1. xmpp muc 群聊协议 1
  2. 云炬金融每日一题20211012
  3. 如何在网络中成对使用光纤收发器?
  4. 奋斗吧!我们为之奋斗的正则表达式
  5. MySQL online create index实现原理
  6. 冒烟测试正确名称是踩雷测试,雷区测试
  7. mkdir命令(转)
  8. C语言也能干大事第十四节(如鹏基础)
  9. 深入学习ElasticSearch(四)——mapping的详细讲解
  10. Windows桌面图标缓存
  11. Excel:INDEX与MATCH函数
  12. VC++,6.0 MFC设计--- 图形界面
  13. 【obs】libobs-winrt :CreateDispatcherQueueController
  14. linux内核zfs,Linus Torvalds回应用户抱怨:不建议使用 ZFS On Linux
  15. 一台计算机多个显示,一台计算机如何有两个显示器并显示不同的内容?
  16. 【深入设计模式】单例模式—从源码分析内部类单例、枚举单例以及单例模式在框架中的应用
  17. 学生管理系统V1.0
  18. 如何开好项目例会︱中科南京软件技术研究院PMO项目主管薛晓娜
  19. python函数手册 stata_Python 与 Stata 配合批量转换数据
  20. 计算机网络有什么特征,计算机网络的基本特征有哪些?

热门文章

  1. ubuntu用户磁盘空间分配--quota
  2. Android FFmpeg集成
  3. [RedHat] RHCE_RHEL6_实战精品 6.postfix邮件服务器
  4. 如何批量把下载QQ空间相册图片
  5. 游戏机生产厂家世界OL破甲刀战详细攻略
  6. 一分钟学会看k线图_教你一分钟就能学会看k线图 不信来试 (图文)
  7. Codeforces Round #685 (Div. 2) (D(博弈) E1 E2(交互))
  8. vue鼠标经过效果实现
  9. 【今日CV 计算机视觉论文速览 第150期】Fri, 2 Aug 2019
  10. markdown合并单元格