博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql存储过程和函数的操作
阅读量:5162 次
发布时间:2019-06-13

本文共 1413 字,大约阅读时间需要 4 分钟。

MySQL在5.0版本开始有存储过程功能;

存储过程和函数是事先经过编译并存储在数据库中的一条SQL语句集合;

存储过程和函数的区别:函数必须有返回值,存储过程则没有;

1、1 创建存储过程语法形式

delimiter $$

create procedure procedure_name ([procedure_paramter,]) [characteristic...]

routine_body

$$

delimter ;

注:procedure_paramter为参数,可有可无,形式为: in/out/inout paramter_name type

routine_body为sql语句,以begin...end标识sql语句开始和结束

暂时以$$为语句结束分隔符

1、2创建函数语法形式

create function function_name ([function_paramter,]) [characteristic...]

routine_body

注:function_paramter的语法形式:paramter_name type

 

使用存储过程的好处:简单、安全、高性能;缺点:可能没有创建存储过程的安全访问权限;

1、执行存储过程

存储过程的执行称为调用,语句为:call,格式为:call procedure_name (procedure_paramter,..);

不带参数: call procedure_name(); 执行创建的存储过程并显示返回结果

              不带参数的存储过程执行时,直接显示select语句结果

带参数:

         创建带传出参数的存储过程:create procedure proc_name(out proc_parameter1 int,out proc_parameter2 int)

         执行存储过程:call proc_name (@proc_parameter1,@proc_parameter2); 传出变量必须以@开头 

                             执行这条语句不显示任何数据,它返回指定的变量,运行结果为1 rows affected

                            select @proc_parameter1,@proc_parameter2;执行这条语句则显示返回结果

          call...和select...语句配套使用

所以,执行存储过程时,既可以显示结果,也可以不显示。

存储过程体select语句的结果保存到相应的变量,用into 关键字。

例:delimiter $$

     create procedure proc_name(in emnpo int,out sum_sal int)

     begin

     select sum(sal) from table where table.emnpo=emnpo into sum_sal;

     end $$

     delimiter;

     

    call proc_name(3,@sum_sal);

    select @sum_sal;

2、创建存储过程:同1.1

3、删除存储过程:

语句格式:drop procedure procedure_name;

只给出存储过程名,不需要加()

4、检查存储过程:

show procedure status;

此语句查询包括详细信息的全部存储过程列表

 

转载于:https://www.cnblogs.com/yaofang/p/5486055.html

你可能感兴趣的文章
杂项-数学软件:Mathematica
查看>>
第3章 深入理解init
查看>>
if判断IE浏览器的类型
查看>>
PoJ1979 Red and Black (DFS)
查看>>
POJ 3009 Curling 2.0(DFS + 模拟)
查看>>
链表与递归
查看>>
Vue表单输入绑定
查看>>
ES6中Generator
查看>>
图书管理系统一
查看>>
QT基础:QT 定时器学习
查看>>
linux定时任务的设置
查看>>
递归树 C#
查看>>
Django 之restfromwork 序列化组件实现数据增删查改
查看>>
hdu 1878 欧拉回路
查看>>
poj 1572
查看>>
Q: #6 Is the Feature Builder Preview supported on Windows XP and Windows Server 2003?
查看>>
post请求参数问题
查看>>
数据库基础
查看>>
web应用
查看>>
软件架构阅读笔记16
查看>>