博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
存储过程怎么使用
阅读量:4115 次
发布时间:2019-05-25

本文共 1156 字,大约阅读时间需要 3 分钟。

1.什么是存储过程?

存储过程是封装了一条或多条SQL的集合。它的好处是简单、高性能、安全。

2.为什么要使用存储过程?

  • 简化复杂的操作,把SQL封装起来容易使用。
    如果所有开发人员和应用程序都使用同一存储过程,则所有使用的代码都是相同的,防止多余执行的步骤保证了数据的一致性。
  • 简化对变动的管理,如果表名列名或者业务逻辑发生变化,只需要改变存储过程中的代码,使用它的人甚至不需要知道这些变化。通过对存储过程限制对基础数据的访问,减少数据讹误的机会(讹误是指无意识或别的原因所导致的数据和讹误)。
  • 调用存储过程比使用单独的SQL要快很多,这提高了性能。

3.存储过程有什么缺点?

存储过程的编写比基本SQL要复杂,对个人技能水平要求较高。

数据库管理员通常限制存储过程的权限,不过幸运的是创建存储过程和使用存储过程的权限是分离的,你可能不能创建自己的存储过程,但仍然可以去执行别的存储过程。

4.怎样去创建存储过程?

Create Procedure 存储过程名()

begin
sql语句;
end;

5.使用和删除存储过程

call 存储过程名;

drop Procedure 存储过程名;

6.使用参数的存储过程

IN 类似形参

OUT 类似返回值
INTO 类似=号赋值
在这里插入图片描述
在这里插入图片描述

要使用该存储过程,需要指定三个变量名,MYSQL中的变量名前面要使用@符号。

Call productpricing(
@pricelow,
@pricehigh,
@priceaverage
)
查询结果,在控制台打印执行存储过程后得到的 pricelow。
Select @pricelow;
如果要显示三个值。
Select @pricelow,@pricehigh,@priceaverage;
下面是创建一个带有接收和输入两个参数的存储过程
在这里插入图片描述
在这里插入图片描述

以上只是存储过程简单的使用,用原文的话来说就是,他们所能完成的工作可以直接使用这些被封装的语句完成,如果说他们还能带来更多的东西,那就是使事情更复杂。

下面将建立一个或许真正能派上用场的智能存储过程

在这里插入图片描述

该存储过程定义了,两个行参一个返回值。

使用declare声明了两个局部变量。
接着一条SQL查询指定订单下所有商品的总金额,赋值给了局部变量。
接着 if 判断,形参 taxrete (不为零则条件成立,加税并将 total赋值给 返回值ototal)

斯巴拉西

下面是官方的分析
在这里插入图片描述
使用该存储过程。
Call ordertotal(2021,0,@total);
Select @total; # 伪数值149.87

Call ordertotal(2021,1,@total);

Select @total; # 加税后 158.86

手机编辑不方便,之后在把代码放进代码块中

转载地址:http://fmzpi.baihongyu.com/

你可能感兴趣的文章
关于无线PCB中 中50欧姆的特性阻抗的注意事项
查看>>
Spring的单例模式源码小窥
查看>>
后台服务的变慢排查思路(轻量级应用服务器中测试)
查看>>
MySQL中InnoDB事务的默认隔离级别测试
查看>>
微服务的注册与发现
查看>>
bash: service: command not found
查看>>
linux Crontab 使用 --定时任务
查看>>
shell编程----目录操作(文件夹)
查看>>
机器学习-----K近邻算法
查看>>
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
tomcat 使用心得(问题)-eclipse 启动tomcat 后 浏览器访问404 --eclipse复制工程显示原来的工程名
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>