1、存储过程的介绍

  对于存储过程,可以接收参数,其参数有三类:in          仅用于传入参数用out         仅用于返回值用inout       既可以传入又可以当作返回值

存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql。  优点:1. 用于替代程序写的SQL语句,实现程序与sql解耦2. 基于网络传输,传别名的数据量小,而直接传sql数据量大缺点:1. 程序员扩展功能不方便补充:程序与数据库结合使用的三种方式#方式一:
                MySQL:存储过程程序:调用存储过程评论:应用程序与数据库解开耦合,效率高,发存储过程名就可以了,但是实际情况:扩展性低,人为因素造成得!#方式二:
                MySQL:程序:纯SQL语句评论:通常用这种方式,运行效率低一些,但扩展性方便。#方式三:
                MySQL:程序:类和对象,即ORM(本质还是纯SQL语句),Django框架里面有ORM框架,本质:应用程序控制sql评论:运行效率低,相比方式二,因为要转换,发送。开发效率高,面向对象,可维护性高。           

2、准备表

创建存储过程

无参数存储过程

#1、无参存储过程delimiter //create procedure p1()BEGINselect * from db7.teacher;END //delimiter ;# MySQL中调用
    call p1();# Python中调用cursor.callproc('p1')

# 在MySQL中调用

删除创建的存储过程:

在pycharm开发环境中调用

((1, '张磊老师'), (2, '李平老师'), (3, '刘海燕老师'), (4, '朱云海老师'), (5, '李杰老师'))

有参数存储过程

#2、有参存储过程
in n1 int,in n2 int,out res int
in 指的是传入参数
out 指的是传出参数delimiter //create procedure p2(in n1 int,in n2 int,out res int)BEGINselect * from db7.teacher where tid > n1 and tid < n2;set res = 1;END //delimiter ;# MySQL中调用# 设定初始值set @x=0call p2(2,4,@x);select @x;# Python中调用cursor.callproc('p2',(2,4,0))# @_p2_0=2,@_p2_1=4,@_p2_2=0cursor.execute('select @_p3_2')cursor.fetchone()

 # MySQL中调用# 设定初始值

在pycharm开发环境中

((3, '刘海燕老师'),)
(1,)

删除存储过程drop procedure proc_name;

转载于:https://www.cnblogs.com/foremostxl/p/9771273.html

13 MySQL--存储过程相关推荐

  1. mysql 存储过程 格式化_转 mysql 存储过程初探

    https://www.cnblogs.com/qmfsun/p/4838032.html MySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/ ...

  2. mysql存储过程与自定义函数

    2019独角兽企业重金招聘Python工程师标准>>> #mysql存储过程与自定义函数: delimiter $ 1.最简单的存储过程 create procedure test( ...

  3. mysql 存储过程 select 循环_简简单单储存过程——循环一个select结果集

    摘要:本文主要讲解了存储过程的创建.调用.以及游标的使用 ,相信掌握了游标      会对你有不错的帮助,有不足之处还请指教 导航 : 一.存储过程的创建及调用 二 .游标的使用 三.  示例 四.补 ...

  4. MySQL 存储过程的基本用法

    http://database.51cto.com/art/201006/203159.htm 我们大家都知道MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能.存储过程在实际应用中也 ...

  5. mysql数据库计算全部女生_使用mysql存储过程-统计某个数据库下的所有表的记录数...

    使用 mysql 存储过程 - 统计某个数据库下的所有表的记录数 其中用到了游标 (cursor) ,循环 (loop) ,动态 SQL 预处理 (prepare) 等技术,特 此记录一下. [sql ...

  6. 转载:mysql存储过程讲解

    记录MYSQL存储过程中的关键语法: DELIMITER // 声明语句结束符,用于区分; CEATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程 ...

  7. Asp.net 调用mysql存储过程参数传中文乱码!

    <add name="xxx" connectionString="server=10.10.xx.xx;User Id=xxx;password=xxxx;dat ...

  8. jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...

    主要内容: JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一 ...

  9. mysql存储过程 简书_MySQL存储过程

    在本节中,您将逐步学习如何在MySQL中编写和开发存储过程. 首先,我们向您介绍存储过程的概念,并讨论何时使用它. 然后,展示如何使用过程代码的基本元素,如创建存储过程的语句,if-else,case ...

  10. mysql存储过程批量建表

    asif mysql存储过程批量建表 用MySql的存储过程建立100张表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

最新文章

  1. 太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜!
  2. HUD 5687(字典树)
  3. 每日一皮:这就是成都马拉松???...
  4. 锐捷RG-S2126G交换机密码恢复实战
  5. 计算机组成原理平均cpi怎么算_计算机组成原理--1.2计算机系统性能评价
  6. 使用Docker Compose 搭建lnmp
  7. ux设计师薪水_客户现在也是UX设计师
  8. python tkinter图片为什么要设置全局变量_为什么这里一定要设置全局变量
  9. RocketMQ一行代码造成消息发送失败
  10. pythonselenium上传图片视频_如何用selenium、python上传文件(图片)
  11. 全国省市县区乡镇级别的矢量文件(百度网盘可下载)
  12. 从零开始的C++(操作符函数重载)
  13. PUM-main makefile报错 #error -- unsupported GNU version gcc versions later than 6 are not supported
  14. 自定义View学习之仿QQ运动步数进度效果
  15. 宣传片常用的策划方案
  16. 机器学习:simple linear iterative clustering (SLIC) 算法
  17. 兄弟连PHP学习套装,2010年限期促销!
  18. 一线网页游戏程序员日志 (十)
  19. jQuery权威指南(第2版)pdf
  20. Python的自我修炼之路(一)

热门文章

  1. d语言 c++ 混合编程,C++,D语言,Python语言一次模拟合作开发
  2. java多线程上传文件_Java大文件分片上传/多线程上传
  3. rt1052 usb速率_rt1052 spi flash 读数据好慢
  4. [leetcode]169. 多数元素
  5. AVL树---最简单的实现
  6. NYOJ 81:炮兵阵地(状压DP)
  7. opencv 多边形近似物体形状
  8. opencv 利用轮廓检索函数实现字母匹配(图像匹配)
  9. win10 安装oracle11g R2的64位版本
  10. ------表达式---数值表示/算术运算符