博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
存储过程和函数 PROCEDURE & FUNCTION
阅读量:4633 次
发布时间:2019-06-09

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

SQL语句执行的时候,要首先编译,然后在被执行。在大型数据库系统中,为了提高效率,将为了完成特定功能的SQL语句集进行编译优化后,存储在数据库服务器中,用户通过指定存储过程的名字来调用执行。

具体而言,存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后,再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数来执行。

创建存储过程

CREATE PROCEDURE 存储过程名([IN|OUT|INOUT] 变量名 变量类型)BEGIN    代码块END;IN:表示传递给存储过程,类似形参OUT:表示从存储过程传出INOUT:表示对存储过程传入和传出 # exampleCREATE PROCEDURE orderTotal(    IN orderNumber INT,    OUT orderTotal DECIMAL(8,2))BEGIN    SELECT Sum(item_price * quantity)    FROM orderItems    WHERE order_num = orderNumber    INTO orderTotal;  # INTO关键字表示把结果保存到变量中END;

调用存储过程

CALL orderTotal(2005, @total);  # 所有MySQL变量都必须以@开始SELECT @total;  # 查看调用存储过程后变量中的值

查看存储过程:

SHOW CREATE PROCEDURE 存储过程名称;  # 显示用来创建一个存储过程的CREATE语句 SHOW PROCEDURE STATUS LIKE '存储过程名称'  # 显示包括何时、有谁创建等详细信息的存储过程列表

删除存储过程

DROP PROCEDURE [IF EXISTS] 存储过程名称;

使用存储过程可以增强SQL语言的功能和灵活性。由于用流程控制语句编写存储过程具有很强的灵活性,所以使用存储过程可以完成复杂的判断和运算,并且可以保证数据的安全性和完整性;另外,存储过程可以使没有权限的用户在控制之下间接地存取数据库,也保证了数据的安全。

具体而言其优点有:

1)执行效率高

2)减少网络流量。因为在调用的时候不需要每次都把SQL语句传输到数据库上

3)安全机制好。通过对存储过程进行授权,从而保证安全性。

存储过程的弊端:

不同数据库的语法差别很大,移植困难,换了数据库,需要重新编写。

不容易管理,把过多业务逻辑写在存储过程中不容易维护,不利于分层管理,容易混乱。

一般存储过程适用于对性能要求较高的业务。

转载于:https://www.cnblogs.com/0820LL/p/9710913.html

你可能感兴趣的文章
使用Struts2标签遍历集合
查看>>
angular.isUndefined()
查看>>
第一次软件工程作业(改进版)
查看>>
WPF的图片操作效果(一):RenderTransform
查看>>
网络流24题-飞行员配对方案问题
查看>>
Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
查看>>
Excel的数据分析—排位与百分比
查看>>
讯飞语音识别Android-Demo
查看>>
UML for Java Programmers之dx实战
查看>>
引入css的四种方式
查看>>
Mysql蠕虫复制
查看>>
pfSense 2.4.3 发布,包含重要的安全修复补丁
查看>>
centos7+ansible自动化工具使用
查看>>
iOS开发UI篇—transframe属性(形变)
查看>>
3月7日 ArrayList集合
查看>>
正则替换
查看>>
jsp 环境配置记录
查看>>
快速学习的方法论
查看>>
线程之线程标识
查看>>
本地视频播放黑屏,有声音
查看>>