zoukankan      html  css  js  c++  java
  • 《mysql必知必会》读书笔记存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做《MySQL必知必会》,看了之后对MySQL的高级用法有了一定的了解。以下内容只当读书笔记。

    如有转载请注明出处~

    存储过程的使用

    执行存储过程

    CALL productpricing()

      执行名为productpricing的存储过程

    创建存储过程

    CREATE PROCEDURE productpricing()
    BEGIN
    SELECT avg(prod_price) AS priceaverage
    FROM products;
    END;

      注意:如果使用mysql的命令行程序,";"是分隔符,存储过程中也有";"这样会造成使用存储过程中的SQL出现语法错误,解决办法是临时更改语句的分隔符:

    DELIMITER //
    ....
    DELIMITER ;

      其中,除了\ 之外,任何字符都可以用作语句分隔符

    删除存储过程

    DROP PROCEDURE productpring;

      只是给出存储过程的名字,不用跟()

    存储过程参数的使用

    --创建存储过程
    CREATE PROCEDURE ordertotal(
    IN onumber INT,
    OUT ototal DECIMAL(8,2)
    )
    BEGIN
    SELECT sum(item_price*quantity)
    FROM orderitems
    WHERE order_num = onumber
    INTO ototal;
    END;
    --调用
    CALL ordertotal(234567, @total)
    --显示结果
    SELECT @total

    智能存储过程 

      前面的存储过程只是为了解及学习使用,实际应用中的存储过程不是像上面的一样简单。如下是一较为复杂的存储过程:

    -- 创建一个名为ordertotal的存储过程
    -- 参数:onumber-订单号 taxable-是否上税(0,不需要 1,需要) ototal-返回的合计
    CREATE PROCECURE ordertotal(
    IN onumber INT,
    IN taxable BOOLEAN,
    OUT ototal DECIMAL(8,2)
    ) COMMENT 'Obtain order total, optionally adding tax'
    BEGIN
    -- 定义临时变量total-存储查询到的合计
    DECLARE total DECIMAL(8,2)
    -- 临时变量taxrate-税点
    DECLARE taxrate INT DEFAULT 6;
    
    -- 得到查询的合计
    SELECT Sum(item_price * quantity) 
    FROM orderitems
    WHERE order_num = onumber
    INTO total;
    
    -- 判断是否需要上税
    IF taxable THEN
    -- 需要,将上税部分添加进合计
    SELECT total+(total/100*taxrate) INTO total;
    END IF;
    -- 将最终的合计返回
    SELECT total INTO ototal;
    END;
  • 相关阅读:
    SharePoint 2013 配置基于表单的身份认证
    SharePoint 2013 场解决方案包含第三方程序集
    SharePoint 2010 站点附加数据升级到SP2013
    SharePoint 2013 在母版页中插入WebPart
    SharePoint 2013 搭建负载均衡(NLB)
    SharePoint 部署解决方案Feature ID冲突
    SharePoint 2013 配置基于AD的Form认证
    SharePoint Server 2016 Update
    SharePoint 2013 为用户组自定义EventReceiver
    SharePoint 2013 JavaScript API 记录
  • 原文地址:https://www.cnblogs.com/wulaa/p/7768069.html
Copyright © 2011-2022 走看看