博客
关于我
Mysql_存储过程
阅读量:110 次
发布时间:2019-02-26

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

存储过程详解

一、概述

存储过程是一组用于完成特定功能的SQL语句集合。在MySQL中,从5.0版本开始支持存储过程,其优势在于可以提高数据库处理速度,增强数据库的灵活性。通过将复杂或常用的操作预先编译并存储,可以在需要时直接调用,减少客户端的负载。

二、简介

存储过程是将多条SQL语句以特定名称存储到数据库中的功能模块。其体积较小,执行效率高,适合处理复杂的数据库操作。与传统的存储过程不同,MySQL支持存储过程,可以在客户端和服务器端分别发挥作用。

三、优点

1. 提高执行效率

存储过程在第一次调用后会被编译并存储在服务器段,二进制化的代码缓存大幅度减少了执行时间。

2. 灵活性高

通过将SQL语句与控制语句结合,可以实现更复杂的逻辑操作,灵活性远超普通的SQL语句。

3. 减少网络负载

存储过程在服务器端执行,减少了客户端与数据库之间的数据传输量,提升了整体系统性能。

4. 可重复调用与维护

存储过程可以多次调用,不影响其他用户,且可以随时修改或删除,无需重启数据库。

5. 控制访问权限

通过存储过程可以对数据库操作进行严格控制,确保数据安全性。

四、示例

1. 创建不带参数的存储过程

delimiter $$create procedure cc()begin    create table mk (        id int(10),        name char(10),        score int(10)    );    insert into mk values (1, 'wang', 13);    select * from mk;end $$delimiter ;call cc();

2. 创建带参数的存储过程

delimiter $$create procedure getrole(in inname varchar(16))begin    select a_id, a_name, a_level from test1 where a_name = inname;end $$delimiter ;call getrole('aaaa');

3. 查看存储过程

show create procedure cc\G;

4. 修改存储过程

show create procedure getrole\G;alter procedure getrole modifies sql data sql security invoker;show create procedure getrole\G;

5. 删除存储过程

drop procedure if exists getrole;

五、总结

存储过程通过将复杂操作预先编译并存储,可以有效提升数据库性能和灵活性。其优势在于减少了客户端与数据库之间的交互,优化了资源利用。通过合理使用存储过程,可以显著提升系统性能,同时增强数据库的安全性和可维护性。

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

你可能感兴趣的文章
Pytest框架环境切换实战教程!赶快收藏
查看>>
Pytest测试实战|Conftest.py详解
查看>>
Pytest测试框架快速搭建
查看>>
pytest测试框架:最强大的自动化测试工具,让测试变得轻松有趣
查看>>
Pytest自动化测试指定执行测试用例
查看>>
python - 如何并行化python numpy中的总和计算?
查看>>
Python - 如何解析 xml 响应并将元素值存储在变量中?
查看>>
Python - 安装了扩展的远程 Webdriver
查看>>
python - 将字符串中的日期与今天的日期进行比较
查看>>
python - 数据描述符(class 内置 get/set/delete方法 )
查看>>
Python - 根据值绘制彩色网格
查看>>
Python - 正则表达式在括号之间获取数字
查看>>
python binascii.Error: Incorrect padding
查看>>
Python bool() 函数能否为无效参数引发异常?
查看>>
Python C 程序子进程在“for line in iter“处挂起
查看>>
Python Celery:自动化测试平台定时任务必备的三方库
查看>>
python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令
查看>>
Python CONNECT 4 CHECK WIN函数
查看>>
python cos,Python cos(90)和cos(270)不是0
查看>>
python ctypes库中动态链接库加载方式
查看>>