MySQL通用存储过程

什么是存储过程

简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;

ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;

有哪些特性

有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;

函数的普遍特性:模块化,封装,代码复用;

速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;

创建存储过程

//创建存储过程
DELIMITER $$

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `t204`.`v_person`(page INT ,rows1 INT)
    /*LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'*/
    BEGIN
   DECLARE per INT;
   SET per:=(page-1)*rows1;
   SET @pe=CONCAT('select * from person limit ',per,',',rows1,'');
   PREPARE per1 FROM @pe;
   EXECUTE per1;
    END$$

DELIMITER ;
//调用方法
CALL v_person(1,5);

执行以上存储结果,验证是否正确,如下图,结果OK:

1 queries executed, 1 success, 0 errors, 0 warnings

查询:CREATE PROCEDURE `t204`.`v_person1`(page INT ,rows1 INT) BEGIN DECLARE per INT; SET per:=(page-1)*rows1; SET @pe=CONCAT('select ...

共 0 行受到影响

执行耗时   : 0.080 sec
传送时间   : 1.209 sec
总耗时      : 1.290 sec
 
id	name	age	sex
e7f64346-5cc0-11e8-bc76-54ee75bbb0cd	张三4	18	女
e29d5a46-5cc0-11e8-bc76-54ee75bbb0cd	张三3	16	女
d8f016c8-5cc0-11e8-bc76-54ee75bbb0cd	张三2	17	男
ced967e6-5cc0-11e8-bc76-54ee75bbb0cd	张三1	16	19
234a024d-5b5e-11e8-bc76-54ee75bbb0cd	张三	18	男


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值