存储过程

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

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

例子:

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

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. [css]《CSS知多少》

    http://www.cnblogs.com/wangfupeng1988/p/4325007.html

  2. 【M12】了解“抛出一个exception”与“传递一个参数”或“调用一个虚函数”之间的差异

    1.方法参数的声明语法和catch语句的语法是一样的,你可能会认为主调方法调用一个方法,并向其传递参数,与抛出一个异常传递到catch语句是一样的,是的,有相同之处,但也有更大的不同. 2.主调方法调 ...

  3. File类的基本操作之读出所有目录路径

    package org.mark.file; import java.io.File; /** * File类的基本操作之读出所有文件夹路径 * 假设给定一个文件夹,要求将此文件夹中的所有文件都列出来 ...

  4. JS之正则表达式验证URL

    function IsURL(str_url){ var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9 ...

  5. Ruby简介,附带示例程序

    Ruby语言是日本人松本行弘于1993年器开始着手研发,经历2年时间,发布了Ruby语言的第一个版本:0.95版.     Ruby是一种非常简介的解释性语言,一种纯粹的面向对象编程语言,甚至比Jav ...

  6. ping与telnet的区别

    ping 查看某个IP地址是否有效.还可以得出解析IP..评估网络质量.telnet 查看可以PING通IP的机子上的某个端口是否可以进行访问(telnet IP port) ,如果连接失败,可能是防 ...

  7. VirtualBox中centos网络配置

    VirtualBox图形界面下有四种网络接入方式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接 ...

  8. Xcode常用快捷键总结

    Xcode常用快捷键 Xcode窗口快捷键 其他补充: 编译代码: command + B 将代码翻译为计算机能够识别的语言(0/1) 调试Xcode中程序: command + R 折叠与展开方法代 ...

  9. ios快捷键

    分屏:cmd + option + return 退出分屏:cmd + return cmd + option + [ 代码上跳 cmd + [ 代码左移

  10. 配置opencv

    先把opencv配置起来: 详细参见: http://blog.163.com/chen_dawn/blog/static/1125063201461695238801/ 我的机器的配置方法: 先去环 ...