转自:http://www.cnblogs.com/zhuawang/p/4185302.html

********************* 创建表 *****************************/
delimiter // DROP TABLE if exists test // CREATE TABLE test(
id int(11) NULL
) // /********************** 最简单的一个存储过程 **********************/
drop procedure if exists sp//
CREATE PROCEDURE sp() select 1 // call sp()// /********************* 带输入参数的存储过程 *******************/ drop procedure if exists sp1 // create procedure sp1(in p int)
comment 'insert into a int value'
begin
/* 定义一个整形变量 */
declare v1 int; /* 将输入参数的值赋给变量 */
set v1 = p; /* 执行插入操作 */
insert into test(id) values(v1);
end
// /* 调用这个存储过程 */
call sp1(1)// /* 去数据库查看调用之后的结果 */
select * from test// /****************** 带输出参数的存储过程 ************************/ drop procedure if exists sp2 //
create procedure sp2(out p int)
/*这里的DETERMINISTIC子句表示输入和输出的值都是确定的,不会再改变.我一同事说目前mysql并没有实现该功能,因此加不加都是NOT DETERMINISTIC的*/
DETERMINISTIC
begin
select max(id) into p from test;
end
// /* 调用该存储过程,注意:输出参数必须是一个带@符号的变量 */
call sp2(@pv)// /* 查询刚刚在存储过程中使用到的变量 */
select @pv// /******************** 带输入和输出参数的存储过程 ***********************/ drop procedure if exists sp3 //
create procedure sp3(in p1 int , out p2 int)
begin if p1 = 1 then
/* 用@符号加变量名的方式定义一个变量,与declare类似 */
set @v = 10;
else
set @v = 20;
end if; /* 语句体内可以执行多条sql,但必须以分号分隔 */
insert into test(id) values(@v);
select max(id) into p2 from test; end
// /* 调用该存储过程,注意:输入参数是一个值,而输出参数则必须是一个带@符号的变量 */
call sp3(1,@ret)// select @ret// /***************** 既做输入又做输出参数的存储过程 ***************************************/ drop procedure if exists sp4 //
create procedure sp4(inout p4 int)
begin
if p4 = 4 then
set @pg = 400;
else
set @pg = 500;
end if; select @pg; end// call sp4(@pp)// /* 这里需要先设置一个已赋值的变量,然后再作为参数传入 */
set @pp = 4//
call sp4(@pp)// /********************************************************/

MySql存储过程简单实例的更多相关文章

  1. mysql 存储过程简单实例

    一.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程 ...

  2. MySQL 触发器简单实例 - 转载

    MySQL 触发器简单实例 触发器:可以更新,删除,插入触发器,不同种类的触发器可以存在于同一个表,但同种类的不能有多个.一个更新.一个删除是可以共存的. ~~语法~~ CREATE TRIGGER  ...

  3. Web Services调用存储过程简单实例

    转:http://www.cnblogs.com/jasenkin/archive/2010/03/02/1676634.html Web Services 主要利用 HTTP 和 SOAP 协议使商 ...

  4. MySQL存储过程使用实例详解

    本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法 例1.一个简单存储过程游标实例 DROP PROCEDURE IF EXISTS getUserInfo $$CRE ...

  5. MySQL 触发器简单实例

    ~~语法~~ CREATE TRIGGER <触发器名称>  --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.{ BEFORE |  ...

  6. mysql 存储过程简单学习

    转载自:http://blog.chinaunix.net/uid-23302288-id-3785111.html ■存储过程Stored Procedure 存储过程就是保存一系列SQL命令的集合 ...

  7. mysql存储过程简单例子

    1.之前经常在oracle数据库中使用存储过程,换到mysql后用的不多,但是有时候也用,大致记录一下,基本和oracle的一样. CREATE DEFINER = `root`@`%` PROCED ...

  8. Mysql存储过程简单应用

    因为很久没写过存储过程了,语法也不记得了,靠百度后,解决了当前问题,这里就简单记录一下. CREATE PROCEDURE pro1() BEGIN DECLARE i int; DECLARE db ...

  9. mysql存储过程简单用法

    show procedure status 查看所有存储过程 <!--  简单存储过程  --> 先将结束符改成// delimiter // create procedure query ...

随机推荐

  1. Codeforces Round #408 (Div. 2) C. Bank Hacking

    http://codeforces.com/contest/796/problem/C Although Inzane successfully found his beloved bone, Zan ...

  2. Java IO流-字符流

    2017-11-05 18:34:39 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...

  3. Linux命令详解-printf

    printf命令格式化并输出结果到标准输出. 1.命令格式: printf (选项) (参数) 2.命令功能: echo会将输入的字符串送往标准输出.输出的字符串间以空白字符隔开,并在最后加上换行号. ...

  4. windows配置Scrapy爬虫框架

    一.环境 Windows10 64位 Python2.7.13 64位 下面的安装步骤最好配置代理,可能会遇到被墙的情况. 二.Python的安装 可以去参考这篇文章:http://blog.csdn ...

  5. bzoj4129

    题解: 树上+可修改莫队 莫队的每一块 可以用一个栈 每一次dfs个数>sqrt(n)(自己选的)的时候就可以跳出了 然后不要忘记分出来最后一块 代码: #include<bits/std ...

  6. Java——抽象类、接口

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  7. Beta阶段第2周/共2周 Scrum立会报告+燃尽图 09

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2389] 版本控制:https://git.coding.net/liuyy08 ...

  8. 理解 Socket

    原文链接 题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人 但主要是因为这段时间一直在看html5的东西,看到web socket ...

  9. navicat链接mysql 8 出现 2015 authentication plugin 'caching_sha2_password' 错误

    使用mysql自带的 MySQL 8.0 Command Line Client - Unicode 登录, 然后使用命令: alter user 'root'@'localhost' identif ...

  10. iOS KVC 和 KVO 区别简单总结

    KVC: key value coding,键值编码.是一种通过使用属性的名称(key)来间接访问对象属性的方法.这个方法可以不用通过 setter/getter 方法来访问对象的属性.该方法使用的实 ...