存储过程

刚开始我接触到数据库的时候,感觉存储过程是很难的,但是当你看完我给你列举的例子,你就能够轻松的掌握存储过程的创建和使用了。

存储过程是在大型数据库系统中存储过程在数据库中经过第一次编译后就不需要再次编译,用户通过指定存储过程的名字并给出参数来执行

例子:

查询计算机系学生成绩,列出学生姓名、课程名、成绩

create  procedure  student_grade1

as

select  sname,cname,grade

from  student  s  join  sc  on  s.sno=sc.cno

join  course  c  on   c,cno=sc.cno

where  sdept  =  ‘计算机系’;

查询某个制定系学生的考试情况,列出姓名,所在系、课程名和成绩

create  procedure  student_grade2

@dept  char(20)   --参数

as

select  sname,sdept,cname,grade

from  student  s,sc,course  c

where  s.sno=sc.cno  and  c.cno=sc.cno

and   sdept  =  @dept

查询某个学生,某门课程的成绩,列出学生名、课程名、成绩

create   procedure  student_grade3

@stu_name  char(10),@course_name  char(20)

as

select  sname,cname,grade

from  student  s  join  sc  on  s.sno=sc.cno

join  course  c  on  c.cno=sc.cno

where

sname =  @stu_name  and

cname=  @course_name

调用过程用exec

exec  student_grade3

可以输入指定学生和某门课程

查询某个学生某门课程的考试成绩,默认课程为数据库

create  procedure  student_grade4

@stu_name  char(10),

@course_name  char(20) = ‘数据库’

as

select  sname,cname,grade

from  student  s  join  sc  on  s.sno=sc.cno

join  course  c  on  c.cno=sc.cno

where

sname =  @stu_name  and

cname=  @course_name

查询指定列,指定性别的学生中年龄大于制定年龄的学生

create   procedure  student_grade5

@sex  char(2) = ‘男’,

@age  int  = 20,

@dept  char(20) = ‘计算机’

as

select  *  from  student

where  sex  =  @sex  and  age<@age

and  sdept  =  @sdept

计算两个数的和

create  procedure  sum

@var1  int ,var2  int,var3  int  output

as

var3 = var1+var2

统计制定课程的平均成绩,并将统计结果用输出参数返回

create  procedure  avggrade

@cname  char(20),

@avg_grade  int  output

as

select  @avg_grade = avggrade

from  sc  join  course  c  on  c.cno=sc.cno

where  cname  =  @cname

将指定课程的学分加2分

create  procedure  udgrade

@cname char(20)

as

update  course  set  credit  =  credit+2

where  cname  = @cname

oracle中存储过程的使用的更多相关文章

  1. Oracle中存储过程传入表名学习

    Oracle中存储过程传入表名: 一.动态清除该表的数据 create or replace procedure p_deletetable(i_tableName in varchar2)  as  ...

  2. oracle中存储过程详解

    oracle中存储过程的使用 过程是指用于执行特定操作的PL/SQL块.如果客户应用经常需要执行特定操作,那么可以考虑基于这些操作建立过程.通过使用过程,不仅可以简化客户应用的开发和维护,而且可以提高 ...

  3. 查看Oracle中存储过程长时间被卡住的原因

    1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0 ...

  4. oracle中存储过程中调用存储过程

    存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...

  5. Oracle中存储过程与函数的区别

    Oracle 获取信息一般用function 修改数据用存储过程(需要执行commit命令)

  6. [转]Oracle中存储过程和函数的区别

    原文地址:http://blog.csdn.net/tender001/article/details/8066203 存储过程和函数: 例子: //创建过程 create or replace pr ...

  7. oracle中存储过程把表导出txt文件

    create or replace directory MY_DIR as 'D:\MY_DIR\'; grant read,write on directory MY_DIR to adm; sel ...

  8. oracle中带参存储过程的使用

    Oracle中存储过程带参分为:输入参数(in)和输出参数(out) 例如: create or replace procedure out_test(v_user in emp.user_name% ...

  9. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

随机推荐

  1. HTML5如何播放本地文件

    HTML5在操作的过程中,很多朋友会遇到一个问题,那就是在播放本地文件的时候时常会有一些问题存在,使得HTML5才操作的过程中本地文件播放不流畅或者是不能够正常的播放.现在,我们就来看看HTML5如何 ...

  2. JLink 在J-Flash ARM批处理自动下载

    "C:\Program Files\SEGGER\JLinkARM_V420c\jflasharm.exe" -openprj.\stm32f100c8.jflash -open. ...

  3. ASP.NET奇葩说

    1.form表单 在asp.net中(即runat="server"特性时)method默认值为post  在html中默认是get. 2.Web应用程序项目和网站项目:前者后台文 ...

  4. 关于local storage 和 session storage以及cookie 区别简析

    session storage 和local storage 都是存储在客户端的浏览器内: 一:关于COOKIE 的缺陷 * Cookie的问题 * 数据存储都是以明文(未加密)方式进行存储 * 安全 ...

  5. Asp.net 用 Graphics 统计图(柱状图, 折线图, 扇形图)

    统计图形种类繁多, 有柱状图, 折线图, 扇形图等等, 而统计图形的绘制方法也有很多, 有Flash制作的统计图形, 有水晶报表生成统计图形, 有专门制图软件制作, 也有编程语言自己制作的:这里我们用 ...

  6. Winfrom巧用Using设置鼠标为WaitCursor

    本文转载:http://www.cnblogs.com/LoveJenny/archive/2013/03/13/2956922.html 看到try,finally ,有没有让你想到什么呢?,对了u ...

  7. HDU 5289 Assignment(2015 多校第一场二分 + RMQ)

    Assignment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  8. WdatePicker开始日期不能大于结束日期

    <input class="input_calendar inputcss" id="startDate" runat="server" ...

  9. mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication的解决方法

    直接命令行操作没有问题,但是PHP连接就会报上面的错误. SET old_passwords =0; USE mysql; UPDATE user SET password =PASSWORD('yo ...

  10. Android开发实例之多点触控程序

    智能终端设备的多点触控操作为我们带来了种种炫酷体验,这也使得很多Android开发者都对多点触控程序的开发感兴趣.实际上多点触控程序的实现并不是那么遥不可及,而是比较容易.本文就主要通过一个实例具体讲 ...