| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> mysql存储过程 -> 正文阅读 |
|
[大数据]mysql存储过程 |
?(注:本文参考自 《MySQL必知必会》[英] Ben Forta)? 目录 1.1 为什么使用要存储过程????????理由有以下几点:
????????换句话说,使用存储过程有3个主要的好处,即简单、安全、高性能。 2.1 使用存储过程????????使用存储过程需要知道如何执行(运行)它们。存储过程的执行远比其定义更经常遇到,因此,我们将从执行存储过程开始介绍。然后再介绍创建和使用存储过程。 2.1.1 执行存储过程????????MySQL称存储过程的执行为调用,因此MySQL执行存储过程的语句为CALL。CALL接受存储过程的名字以及需要传递给它的任意参数。例如:
????????其中,执行名为productpricing的存储过程,它计算并返回产品的最低、最高和平均价格
2.1.2?创建存储过程
?再
看一个例子,一个返回产品平均价格的存储过程。如下:
????????其中,用CREATE PROCEDURE productpricing()语句定义一个名为productpricing的存储过程。如果存储过程接受参数,它们将在()中列举出来。此存储过程没有参数,但后跟的()仍然需要。然后,BEGIN和END语句用来限定存储过程体。这里存储过程体是一个简单的select语句~ ????????在MySQL处理这段代码时,它创建一个新的存储过程productpricing。没有返回数据,因为这段代码并未调用存储过程,这里只是为以后使用而创建它。 2.1.3 调用/删除存储过程????????存储过程已经创建好了,我们该怎么使用它呢?只需要一行代码:
????????删除存储过程也是一行代码:
????????仅当存储过程存在时,我们可以这样:
2.1.4 在存储过程中使用参数????????productpricing只是一个简单的存储过程,它简单地显示SELECT语句的结果。一般,存储过程并不显示结果,而是把结果返回给你指定的变量(变量指的是在内存中申请一定的空间,用来存储临时数据)。下面创建一个接收变量的存储过程:
????????该存储过程接受3个参数:lowestprice存储产品最低价格,highestprice存储产品最高价格,averageprice存储产品平均价格。每个参数必须具有指定的类型,这里使用十进制值(长度为8,保留两位小数的DECIMAL类型)。关键字OUT指出相应的参数用来从存储过程传出一个值(返回给调用者)。 ????????MySQL支持IN(传递给存储过程)、OUT(从存储过程传出,如这里所用)和INOUT(对存储过程传入和传出)类型的参数。存储过程的代码位于BEGIN和END语句内,如前所见,它们是一系列SELECT语句,用来检索值,然后保存到相应的变量(通过指定INTO关键字)。
????????存储过程的参数允许的
数据类型与表中使用的数据类型相同。
????????调用该存储过程,必须制定3个变量名,如下:
????????需要注意的是,MySQL变量都必须以@开始。 ????????在调用时,这条语句并不显示任何数据。它返回以后可以显示(或在其他处理中使用)的变量。下面检索出产品的平均价格,我们可以从@priceaverage中获取到。 输入:
?输出: ?????????再举一个栗子,这次使用IN和OUT参数。创建getbyid存储过程,用于接受id并返回数据:
调用这个存储过程:
简单解释一下,“1”是我们传给getbyid存储过程的参数,“@name”是我们想要的变量。 输入:
输出: 2.1.5?检查存储过程?????????格式: SHOW CREATE PROCEDURE 【存储过程名】 比如:
(未完待续...) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:49:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |