电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

mysql储存过程的优缺点和创建使用详细教程

  • 资源ID:47536272       资源大小:224.87KB        全文页数:23页
  • 资源格式: DOCX        下载积分:0金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要0金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

mysql储存过程的优缺点和创建使用详细教程

mysqlmysql 储存过程的优缺点和创建使用详细教程储存过程的优缺点和创建使用详细教程mysql 储存过程的优缺点和创建使用详细教程? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27DROP procedure IF EXISTS getGameName;#删除储存过程#注意参数名不能与字段名相同 DELIMITER $ CREATE PROCEDURE getGameName(IN gameid INT, #入参OUT g_name VARCHAR(45), #出参OUT pin_yin VARCHAR(45) #出参 BEGINSELECT gamenameINTO g_nameFROM cy_gameWHERE id = gameid;SELECT pinyinINTO pin_yinFROM cy_gameWHERE id = gameid; END$ DELIMITER ;call getGameName(4,g_name,pin_yin);#调用储存过程 SELECT g_name,pin_yin;#返回值SHOW PROCEDURE STATUS; #显示有哪些储存过程SHOW CREATE PROCEDURE getGameInfo;#显示指定储存过程的信息,包括代码一一. . 定义定义存储过程是存储在数据库目录中的一段声明性 SQL 语句。触发器,其他存储过程以及Java,Python,PHP 等应用程序可以调用存储过程。自身的存储过程称为递归存储过程。大多数数据库管理系统支持递归存储过程。 但是,MySQL 不支持它。 在 MySQL 中实现递归存储过程之前,您应该检查 MySQL 数据库的版本二二. . 优缺点优缺点MySQL 是最受欢迎的开源 RDBMS,被社区和企业广泛使用。 然而,在它发布的第一个十年期间,它不支持存储过程,存储函数,触发器和事件。自从 MySQL 5.0 版本以来,这些功能被添加到 MySQL 数据库引擎,使其更加灵活和强大。MySQLMySQL 存储过程的优点存储过程的优点通常存储过程有助于提高应用程序的性能。当创建,存储过程被编译之后,就存储在数据库中。 但是,MySQL 实现的存储过程略有不同。 MySQL 存储过程按需编译。 在编译存储过程之后,MySQL 将其放入缓存中。 MySQL 为每个连接维护自己的存储过程高速缓存。如果应用程序在单个连接中多次使用存储过程,则使用编译版本,否则存储过程的工作方式类似于查询。存储过程有助于减少应用程序和数据库服务器之间的流量,因为应用程序不必发送多个冗长的 SQL 语句,而只能发送存储过程的名称和参数。存储的程序对任何应用程序都是可重用的和透明的。 存储过程将数据库接口暴露给所有应用程序,以便开发人员不必开发存储过程中已支持的功能。存储的程序是安全的。 数据库管理员可以向访问数据库中存储过程的应用程序授予适当的权限,而不向基础数据库表提供任何权限。除了这些优点之外,存储过程有其自身的缺点,在数据库中使用它们之前,您应该注意这些缺点。MySQLMySQL 存储过程的缺点存储过程的缺点如果使用大量存储过程,那么使用这些存储过程的每个连接的内存使用量将会大大增加。 此外,如果您在存储过程中过度使用大量逻辑操作,则 CPU 使用率也会增加,因为数据库服务器的设计不当于逻辑运算。存储过程的构造使得开发具有复杂业务逻辑的存储过程变得更加困难。很难调试存储过程。只有少数数据库管理系统允许您调试存储过程。不幸的是,MySQL不提供调试存储过程的功能。开发和维护存储过程并不容易。开发和维护存储过程通常需要一个不是所有应用程序开发人员拥有的专业技能。这可能会导致应用程序开发和维护阶段的问题。内存,CPU 开销大,复杂逻辑困难,不便调试,开发和维护不易MySQL 存储过程有自己的优点和缺点。开发应用程序时,您应该决定是否应该或不应该根据业务需求使用存储过程。三三. . 创建储存过程,调用储存过程创建储存过程,调用储存过程? 1 2 3 4 5 6#创建储存过程 DELIMITER /CREATE PROCEDURE GetAllProducts()BEGINSELECT * FROM products;END / DELIMITER ; ? 1#调用储存过程 CALL STORED_PROCEDURE_NAME();navicat 客户端创建:1. 打开数据库,左侧目录 -函数-右击新建函数2. 设置参数,入参,出参,出入参3. 编写 sql 语句,保存,创建完毕四四. . 变量变量声明变量声明变量要在存储过程中声明一个变量,可以使用 DECLARE 语句,如下所示:? 1DECLARE variable_name datatype(size) DEFAULT default_value;SQL下面来更详细地解释上面的语句:首先,在 DECLARE 关键字后面要指定变量名。变量名必须遵循 MySQL 表列名称的命名规则。其次,指定变量的数据类型及其大小。变量可以有任何 MySQL 数据类型,如INT,VARCHAR,DATETIME 等。第三,当声明一个变量时,它的初始值为 NULL。但是可以使用 DEFAULT 关键字为变量分配默认值。例如,可以声明一个名为 total_sale 的变量,数据类型为 INT,默认值为 0,如下所示:? 1DECLARE total_sale INT DEFAULT 0;SQLMySQL 允许您使用单个 DECLARE 语句声明共享相同数据类型的两个或多个变量,如下所示:? 1DECLARE x, y INT DEFAULT 0;SQL我们声明了两个整数变量 x 和 y,并将其默认值设置为 0。分配变量值分配变量值当声明了一个变量后,就可以开始使用它了。要为变量分配一个值,可以使用 SET 语句,例如:?1 2DECLARE total_count INT DEFAULT 0; SET total_count = 10;SQL上面语句中,分配 total_count 变量的值为 10。除了 SET 语句之外,还可以使用 SELECT INTO 语句将查询的结果分配给一个变量。 请参阅以下示例:? 1 2 3 4DECLARE total_products INT DEFAULT 0SELECT COUNT(*) INTO total_products FROM productsSQL在上面的例子中:首先,声明一个名为 total_products 的变量,并将其值初始化为 0。然后,使用 SELECT INTO 语句来分配值给 total_products 变量,从示例数据库(yiibaidb)中的 products 表中选择的产品数量。变量范围变量范围( (作用域作用域) )一个变量有自己的范围(作用域),它用来定义它的生命周期。 如果在存储过程中声明一个变量,那么当达到存储过程的 END 语句时,它将超出范围,因此在其它代码块中无法访问。如果您在 BEGIN END 块内声明一个变量,那么如果达到 END,它将超出范围。 可以在不同的作用域中声明具有相同名称的两个或多个变量,因为变量仅在自己的作用域中有效。但是,在不同范围内声明具有相同名称的变量不是很好的编程习惯。以符号开头的变量是会话变量。直到会话结束前它可用和可访问。在本教程中,我们向您展示了如何在存储过程中声明变量,并讨论了变量的范围(作用域)。五五. . 存储过程参数存储过程参数MySQLMySQL 存储过程参数示例存储过程参数示例1.IN 参数示例以下示例说明如何使用 GetOfficeByCountry 存储过程中的 IN 参数来查询选择位于特定国家/地区的办公室。? 1 2 3 4 5 6 7 8 9 10 11 12 13USE yiibaidb; DROP procedure IF EXISTS GetOfficeByCountry;DELIMITER $ USE yiibaidb$ CREATE PROCEDURE GetOfficeByCountry(IN countryName VARCHAR(255)BEGINSELECT * FROM officesWHERE country = countryName;END$DELIMITER ;SQLcountryName 是存储过程的 IN 参数。在存储过程中,我们查询位于 countryName 参数指定的国家/地区的所有办公室。假设我们想要查询在美国(USA)的所有办事处,我们只需要将一个值(USA)传递给存储过程,如下所示:? 1CALL GetOfficeByCountry('USA');SQL执行上面查询语句,得到以下结果 -要在法国获得所有办事处,我们将 France 字符串传递给 GetOfficeByCountry 存储过程,如下所示:? 1CALL GetOfficeByCountry('France')SQL2.OUT 参数示例以下存储过程通过订单状态返回订单数量。它有两个参数:orderStatus:IN 参数,它是要对订单计数的订单状态。total:存储指定订单状态的订单数量的 OUT 参数。以下是 CountOrderByStatus 存储过程的源代码。? 1 2 3 4 5 6 7 8 9 10 11 12 13 14USE yiibaidb; DROP procedure IF EXISTS CountOrderByStatus;DELIMITER $ CREATE PROCEDURE CountOrderByStatus(IN orderStatus VARCHAR(25),OUT total INT) BEGINSELECT count(orderNumber)INTO totalFROM ordersWHERE status = orderStatus; END$ DELIMITER ;SQL要获取发货订单的数量,我们调用 CountOrderByStatus 存储过程,并将订单状态传递为已发货,并传递参数(total)以获取返回值。? 1 2CALL CountOrderByStatus('Shipped',total); SELECT total;SQL执行上面查询语句后,得到以下结果 -? 1 2 3 4 5 6+-+ | total | +-+ | 303 | +-+ 1 row in setSQL要获取正在处理的订单数量,调用 CountOrderByStatus 存储过程,如下所示:执行上面查询语句后,得到以下结果 -? 1 2 3 4 5 6+-+ | total_in_process | +-+ | 7 | +-+ 1 row in setSQLINOUTINOUT 参数示例参数示例以下示例演示如何在存储过程中使用 INOUT 参数。如下查询语句 -? 1 2 3 4 5 6DELIMITER $ CREATE PROCEDURE set_counter(INOUT count INT(4),IN inc INT(4) BEGINSET count = count + inc; END$ DELIMITER ;SQL上面查询语句是如何运行的?set_counter 存储过程接受一个 INOUT 参数(count)和一个 IN 参数(inc)。在存储过程中,通过 inc 参数的值增加计数器(count)。下面来看看如何调用 set_counter 存储过程:? 1 2 3

注意事项

本文(mysql储存过程的优缺点和创建使用详细教程)为本站会员(m****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

分享当前资源【mysql储存过程的优缺点和创建使用详细教程】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
二维码
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------



关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.