mysql中存储过程
存储过程procedure
存储过程,其本质还是函数——但其规定:不能有返回值;
定义形式:

说明:
1,in:用于设定该变量是用来“接收实参数据”的,即“传入”;默认不写,就是in
2,out:用于设定该变量是用来“存储存储过程中的数据”的,即“传出”,即函数中必须对它赋值;
3,inout:是in和out的结合,具有双向作用;
4,对于,out和inout设定,对应的实参,就“必须”是一个变量,因为该变量是用于“接收传出数据”;
调用存储过程:
call 存储过程名 (实参1,实参2,.... )
它应该是在“非编程环境中”调用,即执行增删改查的场景下;
举例1:
#创建一个存储过程:
#该存储过程的目标是:将3个数据写入到表tab_int;
#并返回该表的第一个字段的前3大值的行

调用:

举例2(使用in,out,inout):

下面使用正确调用方法:

删除存储过程:
drop procedure 存储过程名;
在php中使用存储函数或存储过程的示意
<php
//调用存储函数:
$v1 = $_POST[‘a’];
$v2 = $_POST[‘b’];
$sql = “insert into tab1 (id, f2, f3) values ( null, now(), func1($v1 , $v2 ) )”;
$result = mysql_query($sql);
http://www.qwangxiao.com/t/henan/
//调用存储过程:
$v1 = $_POST[‘username’];
$v2 = $_POST[‘pass’];
$v3 = $_POST[‘age’];
$sql = “ call insert_user($v1, $v2, $v3 ); ”; //insert_user()是一个存储过程,带3个参数,会将该3个参数数据写入(insert)某个表中。
$result = mysql_query();
另一个使用存储过程返回结果集的例子:
$id = $_GET[‘id’];
$sql = “call Get_User_Info( $id ) “; //Get_User_Info()是一个存储过程,其中会返回某个指定id的用户信息
$result = mysql_query($sql); //这里得到的就是“结果集”了
?>
mysql中存储过程的更多相关文章
- SqlServer和MySQL中存储过程out返回值处理C#代码
1.SqlServer中out处理 C#代码 #region"SqlServer中存储过程处理out返回值" //public void getdata() //{ // stri ...
- MYSQL中存储过程的创建,调用及语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- MySQL中存储过程+事件的使用方法
一.背景 将界面操作日志存储在MySQL数据库中的operationlog表中,如果该表不能自动备份,表中的数据会越来越多,影响速度.可以定期将表中数据备份到另外一个表中来解决. 二.解决方案 1.使 ...
- [转]MySQL中存储过程权限问题
MySQL中以用户执行存储过程的权限为EXECUTE 比如我们在名为configdb的数据库下创建了如下存储过程,存储过程的定义者为user_admin use configdb; drop proc ...
- Mysql中存储过程和函数的写法
MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine ...
- MySql中存储过程的理解
到底什么是存储过程,又为什么需要使用存储过程? 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合,可将其视为批文件,虽然它们的作用不仅限与批处理. 使用存储过程有3个主要的好处 ...
- MySql中存储过程中的@变量总是无法执行,提示Parameter '@XXX' must be defined
一.情形: 在.net调用Mysql时,比如如下的一句SQL,总是无法执行,可是在其它SQL客户端窗口中是能正确执行的. drop procedure if exists AddColumnUnles ...
- MySQL中的存储过程和函数
存储过程和函数 简单的说,存储过程就是一条或者多条SQL语句的集合.可以视为批文件,但是其作用不仅仅局限于批处理.本文主要介绍如何创建存储过程和存储函数,以及如何调用.查看.修改.删除存储过程和存储函 ...
- mybatis调用mysql的存储过程(procedure),实现查询操作(student表中的某个年级中的总人数 select (1) 或者 select (*))
step1:在mysql cmd中新建存储过程: drop procedure if exists queryCountByGrade ; delimiter // -- 定义存储过程结束符号为// ...
随机推荐
- LOJ6089 小Y的背包计数问题 背包、根号分治
题目传送门 题意:给出$N$表示背包容量,且会给出$N$种物品,第$i$个物品大小为$i$,数量也为$i$,求装满这个背包的方案数,对$23333333$取模.$N \leq 10^5$ $23333 ...
- 【转】Influxdb 编译
编译针对当前 github上influxdb的master代码 其实github上的CONTRIBUTING.md 里已经说的很明白,按其一步步来开即开,唯一遇到的问题可能就是下载依赖时被墙无法下载, ...
- 【转】浅谈JavaScript中forEach与each
forEach是ES5中操作数组的一种方法,主要功能是遍历数组,例如: var arr = [1,2,3,4]; arr.forEach(alert); 等价于: var arr = [1, 2, 3 ...
- 在SpringMVC中使用HandlerInterceptor来实现拦截器功能
需求:我们需要在请求某些特定的URL(URL格式为Restful格式)时添加拦截器,以实现进行权限控制. 如:/ResourcePlan/projectCode/P1503127828/PROJECT ...
- FSMC的个人理解
个人理解: FSMC相当于外部设备存储器地址在FSMC对应存储地址中的映射,通过在FSMC的存储地址中写数据,就能通过FSMC的地址线和数据线,将地址和数据写到外部设备存储器地址中.所以,程序中,需要 ...
- hibernate 解决 java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
参考:https://stackoverflow.com/questions/9851528/java-lang-noclassdeffounderror-org-hibernate-cfg-conf ...
- .net core实践系列之短信服务-Api的SDK的实现与测试
前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为, ...
- Linux Namespace : IPC
IPC namespace 用来隔离 System V IPC 对象和 POSIX message queues.其中 System V IPC 对象包含共享内存.信号量和消息队列,笔者在<Sy ...
- 第七周linux内核分析
可执行程序的装载 作者 黎静+ 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002900 ...
- Oracle系列(二): Oracle表的外键查询
在执行数据库删除操作时,外键关联是令我们最烦的一个东西,有了外键关联,就不允许随意删除数据,那么怎知道这个外键关联度的外键属于那个表? select * from user_cons_columns ...