什么是mysql存储过程_mysql 存储过程

存储过程

1.什么是存储过程

一组可编程函数,是为了满足特定功能的SQL语句集

存储过程就是具有名字的一段代码,用来完成个特定的功能

创建的存储过程保存在数据库的数据字典中

2.为什么要用存储过程

将重复性很高的操作,封装到一个存储过程中,简化了对这些SQL的调用

批量处理

统一接口,确保数据安全

相对于Oracle来说,Mysql的存储过程相对功能较弱,使用较少

3.存储过程的创建和调用

1. delimiter$$

他与存储过程无关

delimiter$$ 将标准分隔符 - 分号 (😉 更改为 两个 $

将存储过程作为整体,而不是一次解释每条语句

告诉mysql解释器,该段命令已经结束了。默认情况下,delimiter 是分号,在命令行客户端中,如果有一行命令以分号结束,回车后,mysql将会执行该命令。如果不希望这样,就可以 delimiter$$ ,这样只有在 $$出现后,mysql解释器才会执行 这段语句

0b7d92b916ba1074cf21c4ecb8fd6a87.png

2.创建和调用存储过程

# 创建存储过程

CREATE PROCEDURE 名称()

BEGIN

语句

END$$

# 调用存储过程

CALL 名称()

如图:

c3205060580c33e40e1e6bad579c8440.png

右击鼠标 运行已选择的

然后运行CALL show_content() 这句,就会得到执行结果。

将查询窗口关闭,重新打开一个新的查询窗口,可以直接使用 CALL show_content ,即可执行得到结果

4602928fc27416f0a19e4a102537ecba.png

3.查看存储过程

查看所有存储过程: SHOW PROCEDURE STATUS;

查看指定数据库中的存储过程: SHOW PROCEDURE STATUS WHERE DB = 'publiccms';

353e1100578f65ae454e2899ccd77f05.png

查看指定存储过程源码 : SHOW CREATE PROCEDURE show_emp;

删除指定存储过程: DROP PROCEDURE show_emp;

4.存储过程变量

delimiter $$

CREATE PROCEDURE test()

BEGIN

-- 声明变量,默认为空

DECLARE res VARCHAR(255) DEFAULT '';

DELETE x,y int DEFAULT 0 -- 声明两个变量,类型为int ,默认为 0

-- 赋值 set 方式

set x = 3;

set y = 4;

DECLARE avgRes DOUBLE DEFAULT 0;

-- 另一种赋值方式 into 方式

select avg(salary) into avgRes from emp

end$$

-- 什么的变量,如 x,y等,只能在 begin end 之间有效

5.存储过程参数传递

in

-- 根据传入的名称,获取对应的信息

delimiter $$

create PROCEDURE getName(in name VARCHAR(255))

BEGIN

SELECT * FROM emp where ename = name;

end$$

delimiter ;

CALL getName('鲁班')

0d9c43d8e4e20025a37f795dc48359de.png

out

-- 传入姓名,得出薪水

delimiter $$

create procedure getSalary(in name varchar(255),out money int)

BEGIN

select salary into money from emp where ename = name;

end$$

delimiter ;

CALL getSalary('李白',@s) -- @s 代表返回的数

select @s; -- 也可以写为 select @s from DUAL

-- DUAL 是一个虚拟的表

e8781f8371867a96a27a27796864d96e.png

inout 既是输入,又是输出

delimiter $$

create procedure test(inout num int,in inc int) -- inout ,既是输入,也是输出

BEGIN

set num = num + inc;

end$$

delimiter ;

set @num1 = 20; -- @ 代表地址传递

CALL test(@num1, 10);

select @num1;

18c58451313c3023f37bb0ee087076bb.png

mysql fetch 存储过程_【MySQL存储过程及游标的使用 1. 写在前面本篇内容及部分示例代码基于《MySQL必知必会》,所需要获得和运行的一切东西,可以在http://www.forta.com/books/0672327120/ 上找到,包括两个SQL脚本,create.sql 和 populate.sql。本篇内容的理解同时也参考了MySQL8.0的官方文档《MySQL 8.0 Reference Manual》,若有理解不到位的地方,有能力的小... 阅读详情

相关推荐

mysql 存储过程详解

mysql 存储过程详解

congge 4万+

MySQL存储过程和自定义函数、Navicat、创建存储过程和函数、调用存储过程和函数、三种方式、In和Out类型参数、

MySQL存储过程和函数过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快。1.1 存储过程存储过程是由过程化 SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,因此称它为存储过程,使用时只要调用

饮冰室人的博客 2万+

ORACLE数据库查询存储过程内容

两个语句: 1.查看所有存储过程 select distinct name From user_source where type = 'PROCEDURE' 2.查询具体存储过程内容 SELECT text FROM user_source WHERE NAME = 'PRC_APP_GETTALENTALLARTICLES' ORDER BY line ; 注意:存储过程一定要大写,否则查询不到 ...

蜗牛驿站 1万+

MySQL-------存储过程与存储函数(1)

10.1.1创建存储过程 存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。 创建存储过程的语句为 CREATE PROCEDURE,创建存储函数的语句为CREATE FUNCTION。 调用存储过程的语句为CALL。 调用存储函数的形式就像调用MySQ...

随风而逝的博客 2436

Oracle查看存储过程内容

方法1 SELECT text FROM user_source WHERE lower(NAME) = 'name_procedure'; -- 替换成存储过程名称 方法2 右击 -> view

喝醉酒的小白 1万+

MySQL存储过程

概念 MySQL5.0版本开始支持存储过程,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法,存储过就是数据库SQL与层层面的代码封装与重用 特性 1.有输入输出参数,可以声明变量,有if/else/case/while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能 2.函数的普通特性:模块化,封装,代码复用 3.速度快,只有首次执行需要经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤 格式 创建存储过程 -- 创建存储过

weixin_60589106的博客 5万+

MySQL存储过程详解 mysql 存储过程

mysql存储过程详解 1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做

qq_28807077的博客 2455

mysql 存储过程复制_MySQL存储过程

存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。创建存储过程CREATE PROCEDURE productpricing()BEGINSELECT AVG(prod_price)AS priceaverageFROM products;end;此存储过程名为productpricing,用CREATE PROCEDURE ...

weixin_33553051的博客 1269

mysql存储过程call_mysql call 存储过程

PHP调用MYSQL存储过程实例PHP调用MYSQL存储过程实例标签:mysql存储phpsqlquerycmd2010-09-26 11:1011552人阅读评论(3)收藏举报实例一:无参的存储过程$conn = mysql_connect('localhost','root','root') o...文章thinkyoung2016-01-20544浏览量存储过程实例存储过程:是为了...

weixin_34981046的博客 2167

mysql 存储过程 总结_Mysql存储过程总结

1.关于MySQL存储过程存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。2MySQL存储过程的创建(1).格式MySQL存储过程创建的格式:CREATE PROCEDURE过程名([过程参数[,......

weixin_33384949的博客 577

MySQL 存储过程

存储过程(Stored Procedure)是一种存储在数据库中的程序,可供外部程序调用的一种数据库对象。存储过程是为了完成特定功能的 SQL 语句集,提供许多过程语言的功能,例如变量定义、条件语句、循环语句、游标以及异常处理等。存储过程没有返回值,但是它可以通过输出参数实现数据的返回,同时还可以产生一个查询结果返回到客户端。存储过程经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)调用执行。存储过程思想上很简单,就是数据库 SQL 语句的封装与重用。

Doublelv 的博客专栏。 3806

什么是mysql存储过程_什么是mysql存储过程

MySQL中的存储过程指的是存储在数据库中的SQL语句集合,当创建好存储过程后在运行时提供所需参数,存储过程就可以以代码指定的方式使用参数执行并返回值在MySQL中提供了创建存储过程的能力。存储过程MySQL以及其他数据库管理系统中的强大功能。接下来在文章中将为大家具体介绍MySQL中的存储过程,具有一定的参考作用,希望对大家有所帮助。【推荐课程:MySQL教程】存储过程存储过程指的是存储在数...

weixin_39928233的博客 563

[MySQL]存储过程

本篇文章阐述的原则是“以吾之理解,着重之阐述”,因此没有那么细致。 如果文中阐述不全或不对的,多多交流。 存储过程的细节很多,而在实际工作中又未必都能涉及这些细节,工作时间一长,就可能忘记,于是特来写这篇文章,既是为自己做个笔记,也是跟大家分享存储过程的学习和使用方法。 参考笔记三,P34.1、P3...

qq_35485206的博客 1380

mysql execute 存储过程_mysql存储过程

存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql存储过程的优点#1. 用于替代程序写的SQL语句,实现程序与sql解耦#2. 可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器#3. 执行速度快,存储过程经过编译之后会比单独一条一条执行要快#4. 减少网络传输,尤其是在高并发情况下这点优势大,存储过程直接就在数据库...

weixin_36289292的博客 2473

mysql 分号 存储过程_Mysql存储过程

1.进入到数据库中查看 是否有相关的存储过程数据show procedure status where Db='test';2.创建简单的存储过程create procedure hi() select 'hello';3. 调用存储过程call hi();事例:三、MySQL 存储过程特点创建 MySQL 存储过程的简单语法为:create procedure 存储过程名字()([in|out|...

weixin_32163411的博客 427

mysql 存储过程fetch_MySQL存储过程

引言在Mysql中无论是在定义上还是在使用上,自定义函数和存储过程有很多相似的地方,所以我们来简单了解下什么是存储过程以及存储过程的实现方式。以及他们之间的区别。定义存储过程的定义是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。它首先是一组能够完成特定功能的SQL集合,经过编译后存储在数据库中,是通过用户指定的...

weixin_39829166的博客 1740

mysql存储过程

使用存储过程有3个主要的好处,即简单、安全、高性能...

m0_59259076的博客 705

MySQL存储过程

存储过程相对与Java开发来说,可以并不是太好维护以及阅读的,所以不建议在程序中去调用存储过程做一些业务操作,

陆卿之的博客 1637
上一篇: c语言余一个负数_C语言负数的除法和求余运算
下一篇: mysql5.5源码安装_MySQL5.5源码安装
贤睿
博客等级 码龄8年 34粉丝 67原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值