博客
关于我
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/

你可能感兴趣的文章
oracle 逻辑优化,提升高度,综合SQL上下文进行逻辑优化
查看>>
oracle 闪回关闭,关闭闪回即disable flashback的操作步骤
查看>>
oracle 限制用户并行,insert /*parallel */ 到不同用户,并行起不来的问题
查看>>
oracle--用户,权限,角色的管理
查看>>
Oracle-定时任务-JOB
查看>>
oracle.dataaccess 连接池,asp.net使用Oracle.DataAccess.dll连接Oracle
查看>>
oracle00205报错,Oracle控制文件损坏报错场景
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle10g下载地址--多平台下的32位和64位
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>
oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)
查看>>
Oracle11G基本操作
查看>>
Oracle11g服务详细介绍及哪些服务是必须开启的?
查看>>
Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
查看>>
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
Oracle——distinct的用法
查看>>
Oracle、MySQL、SQL Server架构大对比
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>
Oracle中DATE数据相减问题
查看>>