zoukankan      html  css  js  c++  java
  • MySQL数据库实验六:存储过程建立与调用

    实验六  存储过程建立与调用

    一、实验目的

    理解存储过程的概念、建立和调用方法。

    二、实验环境

    三、实验示例

    1、定义一个函数,按性别计算所有学生的平均年龄。

    CREATE FUNCTION aver_age(@sex char(2)) RETURNS int

           AS

           BEGIN

                  DECLARE @aver int

                  SELECT @aver=

                         ( SELECT avg(年龄)

                                FROM s

                                WHERE sex=@SEX

                         )

                  RETURN @aver

           END

    GO

    如下程序对上例定义的aver_age函数进行调用。

    USE student                   /*用户函数在此数据库中已定义*/

    /*定义局部变量*/

    DECLARE @sex char(2)

    DECLARE @aver1 int

    /*给局部变量赋值*/

    SELECT @sex = ‘女’

    SELECT @aver1=dbo.aver_age(@sex) /*调用用户函数,并将返回值赋给局部变量*/

    /*显示局部变量的值*/

    SELECT @aver1 AS '男性学生的平均年龄'

    2、利用student数据库中的S、SC表,编写一无参存储过程用于查询每个学生的选课情况,然后调用该存储过程。

    CREATE PROCEDURE  xuanke_info

    AS

           SELECT  S.#,sname,sex,age,c#,score

                  FROM S INNER JOIN sc

                         ON s.s#=sc.s#

    GO

    3、使用带参数的存储过程

     创建存储过程,根据student数据库的3个表查询指定学生的选课情况。

    CREATE PROCEDURE stu_info @sname (8)

    AS

           SELECT  S.#,sname,sex,age,c#,cname,score

                  FROM S,SC,C

                  Where s.s#=sc.s# and sc.c#=c.c# and sname=@sname

    GO

    EXECUTE  stu_info '张三'

    4、使用带OUTPUT参数的存储过程

    编写存储过程,根据给定的学生学号,计算该生的平均成绩

    Create procedure  stuavg @sno char(4) @s_sum float output,@s_avg  float output

    As

      Select @s_sum=sum(score),s_avg=avg(score)

      From sc

      Where s#=@sno

    在调用存储过程stuavg时,存储过程定义时的形参名和调用时的变量名不一定要匹配,不过数据类型和参数位置必须匹配。不过数据类型和参数位置必须匹配。执行语句如

    DECLARE @x float,@y float

    EXECUTE stuavg ‘s3’',@x OUTPUT,@y output

    SELECT @x, @y

    GO

  • 相关阅读:
    VS和IE或者360兼容模式简单调试js方法
    sqlserver2008自动备份,自动删除较早的别分文件
    EasyUI合并行
    sqlserver导入excel的电话号码(身份证)变为科学计数解决方式
    文本框灰色文字提示,鼠标点击文字消失
    Asp.net MVC 中Controller返回值类型ActionResult
    SQL中CONVERT()转化函数的用法 字符串转日期
    死锁的简单实现
    生产者消费者问题
    [leecode]Implement strStr()
  • 原文地址:https://www.cnblogs.com/gaosheng-221/p/6171838.html
Copyright © 2011-2022 走看看