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%的人还看了以下文章

  • 什么是 Python ?Python 有哪些优势?为什么学 Python ?

    Python 是一种通用的脚本开发语言,比其他编程语言更加简单、易学,其面向对象特性甚至比 Java、C#、.NET 更加彻底,因此非常适合快速开发。Python 在软件质量控制、开发效率、可移植性、组件集成、库支持等方面均处于先进地位。

    2018年10月18日 编程开发
    4.1K1
  • 上机实战八:Java web编程综合案例

    建议学时:6 一、开发基于MVC模式的信息管理系统,如新闻发布系统,要求用户可查看、查询。管理员进入后台可对发布新闻(实现相应的增删查改)。 后台添加文章,建议使用UEditor! UEditor 是开源、免费的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果。 UEditor兼容性很好,是网站站长开发的首选,官网地址:UEditor官网 包…

    2018年12月11日
    4.0K0
  • 单元测试工具JUnit介绍及使用,单元测试快速入门教程五

    JUnit是一个开放源代码的测试框架,用在编写和运行可重复的测试脚本之上,是用于Java语言编写的面向对象程序的单元测试工具。JUnit框架功能强大,目前已经成为Java单元测试的事实标准,基本上能满足日常的测试要求。 1.Junit主要特性 (1)可以将测试代码和产品代码分别开发,便于管理。 (2)针对某一个类的测试代码,以较少的改动便可以应用    另一…

    2018年4月18日 编程开发
    6.4K0
  • python 实战-逢7 过游戏的实现

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

    2022年2月2日
    4.8K0
  • web前端显示设备实时温度,ECharts实现温度折线图,实时动态温度曲线图生成

    web前端显示设备实时温度,ECharts实现温度折线图,实时动态温度曲线图生成。 具体步骤如下: 1.在页面中引入ECharts文件echarts-all.js <!– ECharts单文件引入 –> <script src=”http://echarts.baidu.com/build/dist/echarts-all.js”&gt…

    2019年5月31日
    15.0K1
  • myeclipse注册方法(在哪输入注册码?)

    知道了myeclipse注册码,在哪里输入? Subscriber:AdministratorSubscription Code:NLR8ZC-855550-68537056870845987 运行myeclipse  依次打开window—-preferences—-MyEclipse Enterprise Workbench&#8…

    2020年2月23日
    5.1K0

发表回复

登录后才能评论