美文网首页mysql/oracle数据库
存储过程的使用(一)

存储过程的使用(一)

作者: 程序员ken | 来源:发表于2020-08-12 19:53 被阅读0次

查询存储过程:

show procedure status where Db='数据库名称'

SHOW PROCEDURE STATUS //查询所有的存储过程

**SHOW PROCEDURE STATUS LIKE ** 'pattern' //查询符号要求的存储过程

如:

**SHOW PROCEDURE STATUS LIKE ** 'myuse' 查询的就是存储过程名称 为myuse 的信息

查询数据库字符编码情况

show variables where Variable_name like 'collation%';

删除存储过程:

DROP PROCEDURE IF EXISTS myuse //IF EXISTS最好带上 不然会报错****

创建存储过程的基本样式:

create procedure 存储过程名称( 参数的种类 参数1 数据类型****,****参数的种类 参数2****数据类型****...****参数的种类 参数n 数据类型****)

**BEGIN **

// 处理内容 其中可以用到函数和条件语句等

END

注释: 存储过程的名称可以自由定义,但不可与存在的函数或存储过程名称重复,命名时建议以【****sp_****】开头,需要处理的内容则编辑在BEGIN和END之间。参数的种类分3种,分别是IN、OUT、INOUT,其中IN为输入参数类型,OUT为输出参数类型,而INOUT既是输入类型又是输出类型

下面先创建一个简单的例子

create procedure hi() select 'hello'

/-----分割线-------/

那我们怎么使用它?

调用语法如下:

CALL 存储过程名称(参数,....)

如上面创建的存储过程就可以这样调用

call hi()

(ps:因为没有函数参数可以不写参数,注意存储过程和调用是分开执行的,一起执行会报错)

下面创建一个稍微复杂一点的存储过程(函数)

CREATE PROCEDURE `myuse`( IN NAME VARCHAR (12) )

BEGIN

if name is null or name='' then

   select \* from lei ;

else

select \* from code where code.\`name\` = NAME;

end if;

END

(ps:注意看到使用了IF else,在if里面使用then才能写对应的sql语句 并且每段sql结尾必须带上英文分号。使用了if else 最终要使用 end if;(分号也是必带的)代表条件语句的结束,不然创建过程会报错)

首先 解析这个存储过程的意思: 如果输入参数(使用了IN)是null或‘’会执行 select * from lei这个sql,不匹配条件就会执行下面的

调用结果:

call myuse('')

call myuse('')

下面再来创建一个单纯的输出参数的存储过程

CREATE PROCEDURE sp_con ( OUT v1_name varchar(10), OUT v2_age varchar(10) ) BEGIN

SELECT

name

FROM

CODE limit 0,1 INTO v1\_name;

SELECT

age

FROM

lei limit 0,1 INTO v2\_age;

END;

//上面的sql使用into +形参,这个意思就是查询结果赋值给此形参 这个形参称之为sql里面的变量

call sp_con(@v1_name,@v2_age)

//下面的调用方式也不同了,使用@XX的格式,这就是mysql里面的变量命名规则

//然后查询就可以使用变量,如下面所示,值得一提的是变量是会随着服务关闭而消失的,而存储过程不会

select @v1_name,@v2_age

//其实变量名称不一定非要跟存储过程的out类型中 参数一样,如下图所示,只不过查询一定要用自己设置的变量

call sp_con(@a1,@b1)

select @a1,@b1

本文来源于:宋文超super,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina),转载请注明出处。

相关文章

  • 存储过程的使用(一)

    查询存储过程: show procedure status where Db='数据库名称' SHOW PROC...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

  • 存储过程的使用

    通过之前的学习,已经能够定义一个完整的存储过程了。使用存储过程可以使程序执行效率更高、安全性更好,增强程序的可重用...

  • 8、存储过程

    8、存储过程 8.1、删除存储过程 8.2、创建存储过程 8.3、创建使用局部变量的存储过程 [^]: 局部变量 ...

  • 【工作笔记】Oracle存储过程实战

    本篇围绕几种模式:无参存储过程、带参存储过程、带参数存储过程含赋值方式、存储过程中游标定义使用、异常使用分别举例使...

  • Java面试题之Oracle

    1.什么事存储过程,使用存储过程的好处 存储过程(Stored Procedure) 是一种为了完...

  • 存储过程

    使用存储过程 1.存储过程 ​ 需要MySQL5---->> MySQL5添加了对存储过程的支持。 ​ 迄...

  • SQL Server 系统存储过程 sp_executesql

    SQL Server 中执行存储过程的方式有两种: 使用 EXEC 使用系统存储过程 sp_executesql ...

  • mysql的存储过程及其使用场景,和存储函数的区别

    简单了解什么是存储过程,以及存储过程的使用场景,和存储函数、触发气的区别: 存储过程,存储函数,触发器和事件是自从...

  • mysql存储过程使用

    每行n的指定字段都加上n*6天的时间

网友评论

    本文标题:存储过程的使用(一)

    本文链接:https://www.haomeiwen.com/subject/jiimdktx.html