文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL必知必会--第二十二章~第二十三章

2014-12-21 04:42

关注

MySQL必知必会--第二十二章~第二十三章

第二十三章--使用存储过程
1.存储过程:存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。
2.为什么要使用存储过程?
    (1)通过把处理封装在容易使用的单元中,简化复杂的操作(正如前 面例子所述)。
    (2)由于不要求反复建立一系列处理步骤,这保证了数据的完整性。 如果所有开发人员和应用程序都使用同一(试验和测试)存储过 程,则所使用的代码都是相同的。 
        这一点的延伸就是防止错误。需要执行的步骤越多,出错的可能性就越大。防止错误保证了数据的一致性。
    (3)简化对变动的管理。如果表名、列名或业务逻辑(或别的内容) 有变化,只需要更改存储过程的代码。使用它的人员甚至不需要 知道这些变化。
    (4)提高性能。因为使用存储过程比使用单独的SQL语句要快。
    (5)存在一些只能用在单个请求中的MySQL元素和特性,存储过程可 以使用它们来编写功能更强更灵活的代码。
3.执行存储过程:ySQL执行存储过程的语句 为CALL。
    例如:执行名为productpricing的存储过程,它计算并返回产品的最低、最高和平均价格。
        call productpricing(@pricelow,
                            @pricehigh,
                            @priceaverage);
    
4.创建存储过
    例如:create procedure productpricing()
         begin
             select avg(prod_price) as priceaverage from products
         end;
     此存储过程名为productpricing,用CREATE PROCEDURE productpricing()语句定义。如果存储过程接受参数,它们将在()中列举出来。此存储过程没 有参数,但后跟的()仍然需要。BEGIN和END语句用来限定存储过程体,过程体本身仅是一个简单的SELECT语句
5.删除存储过程
    例如:drop procedure productpricing;
    仅当存在时删除:如果指定的过程不存在,则DROPPROCEDURE将产生一个错误。当过程存在想删除它时,可使用DROP PROCEDURE IF EXISTS。
6.变量(variable)内存中一个特定的位置,用来临时存储数据。
7.使用参数
    例如:create procedure productpricing(
            out pl decimal(8,2),
            out ph decimal(8,2),
            out pa decimal(8,2),
            )
        begin
            select min(prod_price)
            into pl
            from products;
            select max(prod_price)
            into ph
            from products;
            select avg(prod_price)
            into pa
            from products;
            end;
    解释:关键字OUT指出相应的参数用来从存储过程传出 一个值(返回给调用者)。MySQL支持IN(传递给存储过程)、OUT(从存储过程传出,如这里所用)和INOUT(对存储过程传入和传出)类型的参 数。存储过程的代码位于BEGIN和END语句内,如前所见,它们是一系列SELECT语句,用来检索值,然后保存到相应的变量(通过指定INTO关键字)。
8.变量名 所有MySQL变量都必须以@开始。
9.检查存储过程, SHOW CREATE PROCEDURE

第二十三章--游标
1.游标(cursor)是一个存储在MySQL服务器上的数据库查询, 它不是一条SELECT语句,而是被该语句检索出来的结果集。
2.使用游标
    (1)能够使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,它只是定义要使用的SELECT语句。
    (2)一旦声明后,必须打开游标以供使用。这个过程用前面定义的SELECT语句把数据实际检索出来。
    (3)对于填有数据的游标,根据需要取出(检索)各行。
    (4)在结束游标使用时,必须关闭游标。
3.创建游标
    DECLARE命名游标,并定义 相应的SELECT语句,根据需要带WHERE和其他子句。
    例如:create procedure processorders()
         begin
             declare ordernumbers cursor
             for
             select order_num from products;
         end;
    存储过程处理完成后,游标就 消失(因为它局限于存储过程)
4.打开和关闭游标:游标用OPEN CURSOR语句来打开, 关闭:close ordernumbers;
5.使用声明过的游标不需要再次声明,用OPEN语句打开它就可以了。
6.隐含关闭: 如果你不明确关闭游标,MySQL将会在到达END语句时自动关闭它。
7.使用游标数据:可以使用FETCH语句分别访问它的每一行.FETCH指定检索什么数据(所需的列),检索出来的数据存储在什么地方。 它还向前移动游标中的内部行指针,使下一条FETCH语句检索下一行(不 重复读取同一行)。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯