MySQL存储过程快速入门

MySQL存储过程快速入门

  • 什么是存储过程
  • 创建一个简单的存储过程
  • 存储过程中的参数
  • 存储过程的优势和不足

一、什么是存储过程

存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。

一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。

存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能

MySQL 5.0开始支持存储过程,可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

创建一个简单的存储过程

格式 :

MySQL存储过程创建的格式:

CREATE PROCEDURE 过程名 ([过程参数[,…]])
[特性 …] 过程体

这里先举个例子:

    mysql> DELIMITER //  
    mysql> CREATE PROCEDURE proc1(OUT s int)  
        -> BEGIN 
        -> SELECT COUNT(*) INTO s FROM user;  
        -> END 
        -> //  
    mysql> DELIMITER ;

注:

(1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以”;”为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将”;”当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。

(2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用”,”分割开。

(3)过程体的开始与结束使用BEGIN与END进行标识。

这样,我们的一个MySQL存储过程就完成了,是不是很容易呢?

再看一个简单的存储过程:

create procedure porcedureName () 
begin 
    select name from user; 
end;

存储过程用create procedure 创建, 业务逻辑和sql写在begin和end之间。mysql中可用call porcedureName ();来调用过程。

-- 调用过程 
call porcedureName ();

该存储过程没有参数, 只是在调用的时候查询了用户表的用户名而已, 调用结果如下

name
admin
admin1
admin2
admin3

删除存储过程

DROP PROCEDURE IF EXISTS porcedureName; -- 没有括号()

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/2947.html

赞 (0)
江山如画的头像江山如画管理团队
本科教育“增负”,严把毕业出口关,取消“清考”,文凭难“混”
上一篇 2018年12月19日 上午10:01
大学,教师最应该教什么?学生应该学什么?
下一篇 2018年12月20日 下午2:29

99%的人还看了以下文章

  • MXNet安装与常见问题解决:Encountered error while trying to install package

    MXNet安装与常见问题解决:Encountered error while trying to install packageMXNet安装与常见问题解决:Encountered error while trying to install packageMXNet安装与常见问题解决:Encountered error while trying to install packageMXNet安装与常见问题解决:Encountered error while trying to install package

    本文主要讲了什么是MXNet;如何在CPU、GPU上安装MXNet;以及对MXNet安装过程中出现的常见问题给出了具体的解决方法。

    2023年1月14日 • 编程开发
    12.9K0
  • python 实战-逢7 过游戏的实现

    不知道你有没有玩过“逢 7 过”的游戏,游戏规则很简单: 几个人轮流报数,凡遇到 7 的倍数,或含 7 的数字就要跳过,否则就算失败。 今天我们就用 Python 来打印 1 到 100 之间,所有满足条件的数字。 知识点 Python 开发环境 int 类型 变量 运算符 while 循环 条件判断 💡提示: 开发中,我们经常要先构思框架,…

    2022年2月2日
    15.0K0
  • 跟永哥学MVC:Jsp+Servlet+JavaBean开发后台登录程序

    跟永哥学MVC:Jsp+Servlet+JavaBean开发后台登录程序,125建站网原创,转载请务必注明出版。 Jsp+Servlet+JavaBean开发后台登录程序-实现一 login.html(视图) <form action=”loginServlet” method=”post”> 用户名: <input type=”text”…

    2018年2月22日
    24.8K0
  • Cookie和Session的区别及工作原理

    本文详细分析了Cookie和Session的区别及工作原理,并对Cookie和Session安全性进行了对比。

    编程开发 2020年2月11日
    8.8K0
  • java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)

    java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)

      串口通信在工程应用中很常见。 上位机与下位机 在上位机与下位机通讯过程中常通过有线的串口进行通信,在低速传输模式下串口通信得到广泛使用。 通常上位机指的是PC,下位机指的是单片机或者带微处理器的系统。下位机一般是将模拟信号经过AD采集将模拟量转换为数字量,下位机再经过数字信号处理以后将数字信号通过串口发送到上位机,相反上位机可以给下位机发送一些指令或者信…

    2023年1月7日 • 编程开发
    9.0K0
  • 什么是单元测试,单元测试快速入门教程一

    单元测试概述 单元测试是在软件开发过程中要进行的最低级别的测试活动或者说是针对软件设计的最小单位—程序模块(程序中定义的函数、子程序、类或方法),进行正确性检验的测试工作,目的在于发现每个程序模块内部可能存在的差错或缺陷。 在单元测试活动中,软件的独立单元将在与程序的其它部分相隔离的情况下进行测试,主要工作分人工静态检查(静态测试)和动态执行跟踪(动态测试)…

    2018年4月16日
    10.0K0

发表回复

登录后才能评论