[Mysql] 存储过程简单理解
什么是存储过程
简单的说, 就是一组SQL语句集, 功能强大, 可以实现一些比较复杂的逻辑功能. 其实就和编程语言的面向过程函数一样.
ps: 存储过程与触发器类似, 但存储过程是主动调用, 触发器是触发条件调用.
具有那些特性?
有可以输出输入的参数, 可以声明变量, 有if/else, case, while等流程控制语句. 可以编写复杂的逻辑功能.
特性: 模块化, 封装, 代码复用
速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;
一个简单的存储过程
存储过程名为”Search”, 具有一个返回参数”Count”是INT类型.
-- 删除存储过程
DROP PROCEDURE IF EXISTS `Search`;
-- 创建存储过程
CREATE PROCEDURE `Search`(OUT Count INT)
BEGIN
/* 从这里开始写你的sql代码 */
SET Count = 10086;
END;
-- 调用存储过程
CALL Search(@Count);
Select @Count;
-- 查询存储过程
Show procedure status;
参数
[in/out/inout] 参数名 参数类型 ..
IN = 给参数传入值
OUT = 传参, 传入一个变量, 用于接收存储过程内部返回的数据. 相当于Return, 不过应用在了参数
INOUT = 调用者还可以通过 inout 参数传递值给存储过程,也可以从存储过程内部传值给调用者
流程控制语句示例
While循环
WHILE i <= n DO
set s = s + i;
set i = i + 1;
END WHILE;
Case 选择
CASE Numbar
WHEN 0 THEN
set Content = '零';
WHEN 1 THEN
set Content = '壹';
ELSE
set Content = '母鸡啊~';
END CASE;
IF判断; IF / ELSEIF / ELSE
IF Age = 8 THEN
set Content = '小学生';
ELSEIF Age = 15 THEN
set Content = '初中生';
ELSE
set Content = '猜不透啊~';
END IF;
存储过程利弊
不同数据库,语法差别很大,移植困难,换了数据库,需要重新编写;
不好管理,把过多业务逻辑写在存储过程不好维护,不利于分层管理,容易混乱,一般存储过程适用于个别对性能要求较高的业务,其它的必要性不是很大;
感谢你的阅读
[Mysql] 存储过程简单理解的更多相关文章
- MySql存储过程简单实例
转自:http://www.cnblogs.com/zhuawang/p/4185302.html ********************* 创建表 ************************ ...
- mysql 存储过程简单实例
一.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程 ...
- mysql 存储过程简单学习
转载自:http://blog.chinaunix.net/uid-23302288-id-3785111.html ■存储过程Stored Procedure 存储过程就是保存一系列SQL命令的集合 ...
- mysql存储过程简单例子
1.之前经常在oracle数据库中使用存储过程,换到mysql后用的不多,但是有时候也用,大致记录一下,基本和oracle的一样. CREATE DEFINER = `root`@`%` PROCED ...
- Mysql存储过程简单应用
因为很久没写过存储过程了,语法也不记得了,靠百度后,解决了当前问题,这里就简单记录一下. CREATE PROCEDURE pro1() BEGIN DECLARE i int; DECLARE db ...
- mysql存储过程简单用法
show procedure status 查看所有存储过程 <!-- 简单存储过程 --> 先将结束符改成// delimiter // create procedure query ...
- MySql 存储过程实例(附完整注释)
将下面的语句复制粘贴可以一次性执行完,我已经测试过,没有问题! MySql存储过程简单实例: ...
- MySql 存储过程实例 - 转载
MySql 存储过程实例 将下面的语句复制粘贴可以一次性执行完,我已经测试过,没有问题! MySql存储过程简单实例: ...
- MySql 存储过程实例(附完整注释)(转)
MySql 存储过程实例(附完整注释) 将下面的语句复制粘贴可以一次性执行完,我已经测试过,没有问题! MySql存储过程简单实例: ...
- MySQL 存储过程理解
/********************************************************************************* * MySQL 存储过程理解 * ...
随机推荐
- 反向传播(Backpropagation)相关思想
在前面我们学习了SVM损失函数和softmax损失函数,我们优化权重矩阵w的具体思路便是让损失函数最小化,还记得损失函数的定义吗? 没错,损失函数长这样,其中,Wj为权重矩阵的第j个列向量,xi为第i ...
- 单例bean与类加载过程
构造单例bean的方式有很多种,我们来看一下其中一种,饿汉式 public class Singleton1 implements Serializable { //1.构造函数私有 private ...
- Java的先行发生原则
先行发生原则(Happens-Before)是Java内存模型定义的一个等效判断原则.依赖这个原则,我们可以通过几条简单规则判断数据是否存在竞争,线程是否安全,而不需要陷入Java内存模型苦涩难懂的定 ...
- DHCP配置;DHCP Relay配置
目录 DHCP 配置 实验拓扑 实验需求 实验步骤 1. 基于全局地址池的DHCP服务器给客户端分配IP地址 DHCP server 上配置如下 2. 在PC1上设置为DHCP自动获取方式,ipcon ...
- 如何批量修改 GitHub 代码提交作者
批量修改 GitHub 代码提交作者需要进行以下步骤: 首先,你需要 clone 远程仓库到本地,使用以下命令: git clone <repository-url> ``` 将 `< ...
- SRE 的工作介绍
哈喽大家好,我是咸鱼 今天看到了一篇很不错的文章,作者是一名 SRE 工程师,在 Shopee 工作,base 新加坡 分享出来给大家看看 作者:卡瓦邦噶 原文链接:https://www.kawab ...
- 分享6个SQL小技巧
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 经常有小哥发出疑问,SQL还能这么写?我经常笑着回应,SQL确实可以这么写.其实SQL学起来简单,用起来也 ...
- 跟着 GPT-4 从0到1学习 Golang 并发机制(二)
btw: 我的个人博客网站 目录 一.前言 二.开聊 2.1 Golang 中的 sync 包 - Mutex, RWMutex 和 WaitGroup 2.2 条件变量 sync.Cond 2.3 ...
- 即构推出低延迟直播产品L3,可将直播延迟降到1s
近日,全球云通讯服务提供商ZEGO即构科技推出低延迟直播产品Low-Latency Live,简称L3.这款产品对传统CDN直播中"延迟较大.弱网抗性差.观众端内容不同步"等问题进 ...
- 图片转ASCII字符图案的原理(可调整亮度对比度 宽高度)
来, 先看效果哈哈哈哈! 演示地址: http://ascii-picture.imlht.com/ "\` """ . "\`"" ...