ImageVerifierCode 换一换
格式:PPT , 页数:107 ,大小:1.61MB ,
文档编号:5657123      下载积分:16 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5657123.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(hwpkd79526)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(db-chapter08数据库编程.ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

db-chapter08数据库编程.ppt

1、普通高等教育十五规划教材普通高等教育十五规划教材数据库系统概论数据库系统概论 张中军张中军第第8章章 数据库编程数据库编程 2023年4月29日星期六数据库系统概论3第第8章章 数据库编程数据库编程标准标准SQL是高度非过程化的关系数据库操纵语言,具有操作是高度非过程化的关系数据库操纵语言,具有操作统一、面向集合、功能丰富、使用简单等多项优点。统一、面向集合、功能丰富、使用简单等多项优点。缺点:缺乏流程控制能力,难以实现应用业务中的逻辑控制,缺点:缺乏流程控制能力,难以实现应用业务中的逻辑控制,SQL编程技术可以有效克服标准编程技术可以有效克服标准SQL语言实现复杂应用方面的语言实现复杂应用方

2、面的不足,提高应用系统和不足,提高应用系统和RDBMS之间的互操作性。之间的互操作性。在实践中,使用在实践中,使用SQL编程技术来访问和管理数据库中数据的编程技术来访问和管理数据库中数据的方式主要有:嵌入式方式主要有:嵌入式SQL(ADO.NET和和JDBC等)、等)、Oracle系系统中使用的统中使用的PL/SQL、SQL Server系统中使用的系统中使用的T-SQL等等2023年4月29日星期六数据库系统概论4第第8章章 数据库编程数据库编程n8.1 常量与变量常量与变量n8.2 运算符与表达式运算符与表达式n8.3 SQL SERVER 函数函数n8.4 流程控制语句流程控制语句n8.

3、5 游标游标n8.6 存储过程存储过程2023年4月29日星期六数据库系统概论5第第8章章 数据库编程数据库编程8.1 常量与变量常量与变量2023年4月29日星期六数据库系统概论68.1 常量与变量常量与变量J 常量常量n 字符串常量字符串常量ASCII字符串常量:字符串常量:单引号单引号界定的字符串界定的字符串 如如 china,中国人中国人 Unicode字符串常量:前缀字符字符串常量:前缀字符N+单引号界定的字符串单引号界定的字符串 如如 Nchina,N中国人中国人 注:如果字符串中包括单引号,使用两个单引号表示嵌注:如果字符串中包括单引号,使用两个单引号表示嵌入的单引号入的单引号

4、如如 china 区别:区别:ASCII字符占用存储空间字符占用存储空间1个字节,个字节,unicode字符字符占用占用2个字节个字节2023年4月29日星期六数据库系统概论7常量与变量(续)常量与变量(续)n数值常量数值常量 直接按照数值型数据定义的规则和范围书写数据即可直接按照数值型数据定义的规则和范围书写数据即可 n 日期时间常量日期时间常量 使用使用单引号单引号将日期时间字符串界定。将日期时间字符串界定。SQL Server 2000可以识别的日期时间格式如下:可以识别的日期时间格式如下:字母日期格式:字母日期格式:April 25,2005 数字日期格式:数字日期格式:2005-03

5、-05、03-05-2006(年月日、年月日、月日年格式月日年格式)不分割的字符格式:不分割的字符格式:20031008(年月日格式年月日格式)时间格式:时间格式:20:25:05、04:30:AM2023年4月29日星期六数据库系统概论8常量与变量(续)常量与变量(续)J 变量变量 n 全局变量全局变量 由系统提供,通过在变量名字前增加两个由系统提供,通过在变量名字前增加两个前缀区前缀区别于局部变量;别于局部变量;T-SQL全局变量由全局变量由SQL Server系统提系统提供并赋值;供并赋值;用户不能建立也不能为全局变量赋值。用户不能建立也不能为全局变量赋值。通通常将全局变量的值赋给局部变

6、量,以便保存和处理。常将全局变量的值赋给局部变量,以便保存和处理。(获取系统的状态数据,根据状态信息决定下一步走获取系统的状态数据,根据状态信息决定下一步走向。向。)Rowcount:返回最近一个语句影响的行数:返回最近一个语句影响的行数 error:保存了最近执行操作的错误状态:保存了最近执行操作的错误状态 version:当前:当前SQL Server版本信息版本信息2023年4月29日星期六数据库系统概论9常量与变量(续)常量与变量(续)n 局部变量局部变量 用于保存单个数据值;在变量名前面增加一个用于保存单个数据值;在变量名前面增加一个符号表示符号表示局部变量或参数。用途:保存运算的中

7、间结果,作为循环局部变量或参数。用途:保存运算的中间结果,作为循环变量使用等。变量使用等。局部变量作用域局限在一定范围内的局部变量作用域局限在一定范围内的T-SQL对象。一般来对象。一般来说,局部变量在一个批处理中被声明,然后这个批处理内说,局部变量在一个批处理中被声明,然后这个批处理内的的SQL语句就可以使用或者设置该变量的值。语句就可以使用或者设置该变量的值。局部变量声明:局部变量声明:declare 变量名变量名 数据类型数据类型 局部变量赋值:局部变量赋值:set 变量名变量名 =值表达式值表达式 变量值显示:变量值显示:select 变量变量名名2023年4月29日星期六数据库系统概

8、论10常量与变量(续)常量与变量(续)DECLARE book CHAR(12),price FLOATSET book=三国三国SET price=51SELECT book,priceGO例如:我们声明两个变量例如:我们声明两个变量book,price,分别是字符串类,分别是字符串类型和浮点型,并赋值,最后将变量值显示出来。型和浮点型,并赋值,最后将变量值显示出来。2023年4月29日星期六数据库系统概论11常量与变量(续)常量与变量(续)例如:要查询学生例如:要查询学生-课程数据库中的学生表中的学生信息,假课程数据库中的学生表中的学生信息,假如想查看性别如想查看性别=女女的学生学号和姓名

9、。的学生学号和姓名。使用一般的查询我们会这样写:使用一般的查询我们会这样写:SELECT Sno,SnameFROM StudentWHERE Ssex=女女如果使用如果使用DECLARE 语句来查看该信息呢?语句来查看该信息呢?DECLARE SEX CHAR(2)SET SEX=女女SELECT Sno,SnameFROM StudentWHERE Ssex=SEX2023年4月29日星期六数据库系统概论12第第8章章 数据库编程数据库编程8.2 运算符与表达式运算符与表达式2023年4月29日星期六数据库系统概论138.2 运算符与表达式运算符与表达式SQL2000提供多种运算符:提供多

10、种运算符:n算术运算符算术运算符n赋值运算符赋值运算符n比较运算符比较运算符n逻辑运算符逻辑运算符n字符串连接运算符字符串连接运算符n一元运算符一元运算符n位运算符位运算符2023年4月29日星期六数据库系统概论14算术运算符算术运算符n算术运算符在两个表达式上执行数学运算,这两个表达式算术运算符在两个表达式上执行数学运算,这两个表达式可以是任意数字数据类型。可以是任意数字数据类型。n算术运算符包括:算术运算符包括:+(加)、(加)、-(减)、(减)、*(乘)、(乘)、/(除)和(除)和%(取模)(取模)n+(加)、(加)、-(减)运算符还可以用于对(减)运算符还可以用于对DATETIME值执

11、行值执行算术运算算术运算n例如:在学生表中有学生年龄列,但没有出生年份,怎么例如:在学生表中有学生年龄列,但没有出生年份,怎么求学生出生年份呢?求学生出生年份呢?2023年4月29日星期六数据库系统概论15算术运算符(续)算术运算符(续)首先声明一个变量首先声明一个变量n,并将其赋值为当前日期,并将其赋值为当前日期,再在再在SELECT语句中使用语句中使用datepart()函数,()函数,最后将两个值相减。最后将两个值相减。DECLARE nSET n=GETDATE()SELECT Sname,Sage,DATEPART(YEAR,n)-Sage AS YEAR_OF_BIRTHFROM

12、Student2023年4月29日星期六数据库系统概论16位运算符位运算符n位运算符可以对两个表达式进行位操作,这两个表达式可位运算符可以对两个表达式进行位操作,这两个表达式可以是整形数据或者二进制数据。以是整形数据或者二进制数据。n位运算符包括:位运算符包括:&(与)(与):两个均为两个均为1时,结果为时,结果为1,否则为,否则为0|(或):只要有一个为(或):只要有一个为1,结果为,结果为1,否则为,否则为0 (异或):两者不同时为(异或):两者不同时为1或或0时,结果为时,结果为1,否则为,否则为0 在系统中,在系统中,T-SQL首先把整数数据转换成二进制数据,然首先把整数数据转换成二进

13、制数据,然后对二进制数据进行位运算后对二进制数据进行位运算例如:定义两个变量,分别求两者的与、或、异或运算结果。例如:定义两个变量,分别求两者的与、或、异或运算结果。2023年4月29日星期六数据库系统概论17位运算符(续)位运算符(续)DECLARE A INT,B INTSET A=5SET B=10SELECT A&B AS A&B SELECT A|B AS A|B SELECT AB AS AB 2023年4月29日星期六数据库系统概论18比较运算符和逻辑运算符比较运算符和逻辑运算符n比较运算符又称关系运算符,用于测试两个表达式的值之比较运算符又称关系运算符,用于测试两个表达式的值之

14、间的关系。间的关系。n比较运算符有:比较运算符有:=、=、=、或或!=、!n 用户可根据不同的情况使用运算符用户可根据不同的情况使用运算符n逻辑运算符是对某个条件进行测试,运算结果是逻辑运算符是对某个条件进行测试,运算结果是TRUE或或FALSEn逻辑运算符有:逻辑运算符有:AND、OR、NOT、ALL、ANY、BETWEEN、EXISTS、IN、LIKE、SOMEn例如:查询某学生平均成绩,如果平均成绩大于某分数线,例如:查询某学生平均成绩,如果平均成绩大于某分数线,则提示则提示“恭喜,可获奖学金恭喜,可获奖学金”,否则,提示,否则,提示“很遗憾,继很遗憾,继续努力续努力”2023年4月29

15、日星期六数据库系统概论19比较运算符和逻辑运算符(续)比较运算符和逻辑运算符(续)DECLARE STU_ID CHAR(10),LINE SMALLINTSET STU_ID=2009001SET LINE=85IF EXISTS(SELECT AVG(Grade)FROM SC GROUP BY Sno HAVING Sno=STU_ID AND AVG(Grade)LINE)PRINT 恭喜,可获奖学金!恭喜,可获奖学金!ELSE PRINT 很遗憾,继续努力很遗憾,继续努力2023年4月29日星期六数据库系统概论20字符串连接运算符字符串连接运算符n字符串连接运算符为字符串连接运算符为

16、“+”,可以将两个或多个字符串合并,可以将两个或多个字符串合并或连接成一个字符串,还可以连接二进制字符串。或连接成一个字符串,还可以连接二进制字符串。例如:例如:SELECT(ABC+DEF)SELECT(中国中国+是我们的祖国是我们的祖国)SELECT(5+8)SELECT(8+15)SELECT(+空格空格)结果会是什么呢?结果会是什么呢?2023年4月29日星期六数据库系统概论21字符串连接运算符(续)字符串连接运算符(续)n例如:显示学生例如:显示学生-课程数据库中学生表内女生信息课程数据库中学生表内女生信息SELECT(Sname+STR(Sage)+岁岁 +专业专业 +Sdept)

17、AS 女女生信息生信息FROM StudentWHERE Ssex=女女2023年4月29日星期六数据库系统概论22一元运算符一元运算符n一元运算符包括:一元运算符包括:+(正)、(正)、-(负)和(负)和(按位取反)(按位取反)n正负大家已经熟悉,按位取反是将整数转换成正负大家已经熟悉,按位取反是将整数转换成16进制,再进制,再将其求反。将其求反。例如例如a的值是的值是12,16进制即进制即0000 0000 0000 1100 而而a的值为的值为1111 1111 1111 00112023年4月29日星期六数据库系统概论23运算符的优先次序运算符的优先次序n复杂表达式或混合运算中,复杂表

18、达式或混合运算中,运算符优先级决定运算先运算符优先级决定运算先后次序后次序n执行次序影响运算结果执行次序影响运算结果n优先级相同时优先级相同时n 一元运算符一元运算符 从右向左从右向左 如如 +an 二元运算符二元运算符 从左向右从左向右n 有有括号括号的,先运算括号里的,先运算括号里面的表达式,多层括号嵌面的表达式,多层括号嵌套的,先对嵌套最深的括套的,先对嵌套最深的括号求值号求值运算符运算符优先级优先级+(正)、(正)、-(负负)、(按位取反)(按位取反)1*(乘)(乘)/(除)(除)%(取模)(取模)2+(加加)+(字符串连接)(字符串连接)-3=!=!4(异或异或)&(与与)|(或或)

19、5NOT6AND7ALL ANY BETWEEN IN LIKE OR SOME 8=(赋值赋值)92023年4月29日星期六数据库系统概论24第第8章章 数据库编程数据库编程8.3 SQL SERVER 函数函数2023年4月29日星期六数据库系统概论258.3 SQL SERVER 函数函数n数学函数数学函数n字符串函数字符串函数n日期函数日期函数n用户定义函数用户定义函数2023年4月29日星期六数据库系统概论26数学函数数学函数n数学函数对数学函数对SQL SERVER提供的数字数据进行数学运算并提供的数字数据进行数学运算并返回运算结果返回运算结果nABSn 语法格式:语法格式:ABS

20、(numeric_expression)n功能:返回数字表达式的绝对值功能:返回数字表达式的绝对值nnumeric_expression为数字型表达式,返回值类型与该表为数字型表达式,返回值类型与该表达式相同达式相同n例如:例如:SELECT ABS(-10.0),ABS(0.0),ABS(5.0)2023年4月29日星期六数据库系统概论27数学函数数学函数(续续)nRANDn语法格式:语法格式:RAND()n功能:返回功能:返回01之间的随机之间的随机float值值n例如:我们定义一个局部变量,并赋值为例如:我们定义一个局部变量,并赋值为1,通过,通过while语句循环产生语句循环产生5个随

21、机函数值个随机函数值DECLARE COUNTER SMALLINTSET COUNTER=1WHILE COUNTER=9 /*程序主体,开始循环程序主体,开始循环*/BEGIN IF j=i /*条件分支,判断表达式条件分支,判断表达式*/BEGIN WHILE jPerson.Sno 2023年4月29日星期六数据库系统概论86游标例子游标例子3(续)(续)学生表学生表.Sno=Person.Sno 2023年4月29日星期六数据库系统概论87游标例子游标例子3(续)(续)n首先往学生表中增加一个新的列身份证号首先往学生表中增加一个新的列身份证号S_id ALTER TABLE Stud

22、ent ADD S_id CHAR(20)n声明变量、声明游标、传递数据声明变量、声明游标、传递数据DECLARE P_SNO CHAR(10)DECLARE S_SNO CHAR(10)DECLARE PP_id CHAR(20)DECLARE SS_id CHAR(20)DECLARE P_CURSOR CURSORFOR SELECT*FROM PersonDECLARE S_CURSOR CURSORFOR SELECT Sno,S_id FROM StudentOPEN P_CURSOROPEN S_CURSOR2023年4月29日星期六数据库系统概论88游标例子游标例子3(续)(续

23、)FETCH NEXT FROM P_CURSORINTO P_SNO,PP_idFETCH NEXT FROM S_CURSORINTO S_SNO,SS_idWHILE FETCH_STATUS=0 BEGIN IF P_SNO=S_SNO BEGIN UPDATE Student SET S_id=PP_id WHERE CURRENT OF S_CURSOR FETCH NEXT FROM P_CURSOR INTO P_SNO,PP_id FETCH NEXT FROM S_CURSOR INTO S_SNO,SS_id CONTINUE END2023年4月29日星期六数据库系统概

24、论89游标例子游标例子3(续)(续)IF P_SNOS_SNO FETCH NEXT FROM P_CURSOR INTO P_SNO,PP_id ELSE FETCH NEXT FROM S_CURSOR INTO S_SNO,SS_id ENDCLOSE P_CURSORCLOSE S_CURSORDEALLOCATE P_CURSORDEALLOCATE S_CURSOR2023年4月29日星期六数据库系统概论90第第8章章 数据库编程数据库编程8.6 存储过程存储过程 2023年4月29日星期六数据库系统概论91存储过程存储过程n存储过程是最高级别的应用程序存储过程是最高级别的应用程序

25、n可以给存储过程传递参数,存储过程也可以返回值可以给存储过程传递参数,存储过程也可以返回值n存储过程是一组预先编译好的存储过程是一组预先编译好的T-SQL代码,所以执行效率高代码,所以执行效率高n可以作为一个独立的数据库对象,也可以作为一个单元被可以作为一个独立的数据库对象,也可以作为一个单元被用户的应用程序调用用户的应用程序调用nSQL SERVER存储过程类似于其它编程语言里的过程存储过程类似于其它编程语言里的过程2023年4月29日星期六数据库系统概论92存储过程(续)存储过程(续)n存储过程与函数不同:存储过程与函数不同:n存储过程不能在被调用的位置上返回参数,也不能被应存储过程不能在

26、被调用的位置上返回参数,也不能被应用在语句中用在语句中n如:不能用类似于如:不能用类似于val1=sp_procedure的方式使用存储的方式使用存储过程过程n但是,存储过程可以使用变量的形式来返回参数但是,存储过程可以使用变量的形式来返回参数2023年4月29日星期六数据库系统概论93存储过程(续)存储过程(续)n使用存储过程的好处:使用存储过程的好处:n执行速度快执行速度快n语法检查、性能优化;驻留内存语法检查、性能优化;驻留内存n模块化的程序设计模块化的程序设计n一次设计多次使用、修改方便一次设计多次使用、修改方便n减少网络通信量减少网络通信量n作为一个独立单元,一条语句调用作为一个独立

27、单元,一条语句调用n提高系统的安全性提高系统的安全性n授权使用存储过程,屏蔽存储过程涉及的表授权使用存储过程,屏蔽存储过程涉及的表2023年4月29日星期六数据库系统概论94存储过程(续)存储过程(续)n创建存储过程创建存储过程n执行存储过程执行存储过程n修改和删除存储过程修改和删除存储过程2023年4月29日星期六数据库系统概论95创建存储过程创建存储过程n创建存储过程应考虑以下几点:创建存储过程应考虑以下几点:n创建存储过程的权限默认属于数据库所有者,可以授予创建存储过程的权限默认属于数据库所有者,可以授予其他人其他人n存储过程是数据库对象,命名应符合标识符的命名规范存储过程是数据库对象,

28、命名应符合标识符的命名规范n只能在当前数据库中创建存储过程只能在当前数据库中创建存储过程n可以使用可以使用CREATE PROCEDURE命令创建存储过程,也可命令创建存储过程,也可以使用企业管理器或存储过程向导来完成以使用企业管理器或存储过程向导来完成2023年4月29日星期六数据库系统概论96创建存储过程(续)创建存储过程(续)n使用使用CREATE PROCEDURE命令创建存储过程命令创建存储过程n语法格式:语法格式:CREATE PROCEDURE procedure_name 参数参数 参数类型参数类型 =默认值默认值 OUTPUT ,.n WITH RECOMPILE|ENCRY

29、PTION|RECOMPILE,ENCRYPTION AS sql_statement.nn参数含义:参数含义:nprocedure_name:新存储过程名称,必须符合标识符命:新存储过程名称,必须符合标识符命名规则,对于数据库及其所有者必须唯一名规则,对于数据库及其所有者必须唯一2023年4月29日星期六数据库系统概论97创建存储过程(续)创建存储过程(续)n参数参数 参数类型:是存储过程的参数及其数据类型,参数类型:是存储过程的参数及其数据类型,注意注意不能少不能少n默认值:是用于设置存储过程参数的默认值默认值:是用于设置存储过程参数的默认值nOUTPUT:表明参数是返回参数,该参数的值将

30、返回:表明参数是返回参数,该参数的值将返回给调用过程给调用过程nENCRYPTION:每次运行该存储过程都重新编译:每次运行该存储过程都重新编译n|RECOMPILE:加密存储过程:加密存储过程nAS:指定存储过程要执行的操作:指定存储过程要执行的操作nsql_statement.n:完成存储过程操作的任意数目和:完成存储过程操作的任意数目和类型的类型的T-SQL语句语句2023年4月29日星期六数据库系统概论98创建存储过程(续)创建存储过程(续)n创建一个存储过程创建一个存储过程PROC_SC,从学生,从学生-课程数据库中查询课程数据库中查询已经选课的学生信息,包括学号、姓名、性别、院系、

31、选已经选课的学生信息,包括学号、姓名、性别、院系、选修课程号。修课程号。n该存储过程不需使用任何参数。该存储过程不需使用任何参数。CREATE PROC PROC_SCAS SELECT S.Sno,Sname,Ssex,Sdept,CnoFROM Student S,SCWHERE S.Sno=SC.Sno2023年4月29日星期六数据库系统概论99创建存储过程(续)创建存储过程(续)n例如:创建一个存储过程例如:创建一个存储过程PROC_STU,通过将学生学号作,通过将学生学号作为参数传递给存储过程,查看学生为参数传递给存储过程,查看学生-课程数据库中该学号的课程数据库中该学号的学生的选课

32、信息,包括姓名、课程名、成绩。学生的选课信息,包括姓名、课程名、成绩。USE mydbGOCREATE PROC PROC_STU XH CHAR(10)=2010001ASSELECT Sname,Cname,GradeFROM Student S,SC,Course CWHERE S.Sno=SC.Sno AND SC.Cno=C.Cno AND S.Sno=XHGO2023年4月29日星期六数据库系统概论100创建存储过程(续)创建存储过程(续)n创建一个存储过程,接收输入参数创建一个存储过程,接收输入参数-课程号,返回选修该课课程号,返回选修该课程的学生人数。程的学生人数。CREATE

33、 PROC SC_COUNTKCH CHAR(10)=1,SC_CNT INT OUTPUTASSELECT SC_CNT=COUNT(*)FROM SC WHERE Cno=KCHGO2023年4月29日星期六数据库系统概论101执行存储过程执行存储过程n执行存储过程使用执行存储过程使用EXECUTE命令命令n语法格式:语法格式:EXECUTE return_status=procedure_name parameter=value|varible OUTPUT n参数说明:参数说明:nreturn_status:一个可选的整型变量,用于保存存储:一个可选的整型变量,用于保存存储过程的返回状

34、态,但使用前必须声明过过程的返回状态,但使用前必须声明过nprocedure_name:要调用的存储过程名:要调用的存储过程名nparameter:存储过程参数,在:存储过程参数,在CREATE PROCEDURE语句中定义的。注意语句中定义的。注意nValue:存储过程参数的值:存储过程参数的值2023年4月29日星期六数据库系统概论102执行存储过程(续)执行存储过程(续)nvarible:用来保存参数或者返回参数的变量:用来保存参数或者返回参数的变量nOUTPUT:指定存储过程必须返回一个参数:指定存储过程必须返回一个参数n例如:例如:n调用存储过程调用存储过程PROC_SC,该存储过程

35、没有参数该存储过程没有参数 EXECUTE PROC_SCn调用存储过程调用存储过程PROC_STU,可用默认参数值,也可给出,可用默认参数值,也可给出某个学号作为参数值某个学号作为参数值 EXECUTE PROC_STU 2009002 或:或:EXECUTE PROC_STU XH=20090022023年4月29日星期六数据库系统概论103执行存储过程(续)执行存储过程(续)n调用存储过程调用存储过程SC_COUNT,需给出参数值,并有返回值需给出参数值,并有返回值n 为了接收存储过程的返回值,需要一个变量存放该返回为了接收存储过程的返回值,需要一个变量存放该返回参数的值,在该存储过程的

36、调用语句中,必须为这个变参数的值,在该存储过程的调用语句中,必须为这个变量加上量加上OUTPUT关键字来声明关键字来声明DECLARE SC_CNT INT EXEC SC_COUNT 2,SC_CNT OUTPUTPRINT the number of student:+STR(SC_SUM)2023年4月29日星期六数据库系统概论104存储过程的返回值存储过程的返回值n除了定义的返回参数以外,存储过程在执行后都会返回一除了定义的返回参数以外,存储过程在执行后都会返回一个整型值个整型值n如果执行成功,返回如果执行成功,返回0;否则,返回;否则,返回-1-99之间的随机数之间的随机数n也可以使

37、用也可以使用return语句来指定一个存储过程的返回值语句来指定一个存储过程的返回值n例如:创建一个储存过程,接收参数课程号,如果该课程例如:创建一个储存过程,接收参数课程号,如果该课程已被选修,则提示已被选修,则提示已选已选,返回,返回1,否则,提示,否则,提示未选未选,返回返回02023年4月29日星期六数据库系统概论105存储过程的返回值(续)存储过程的返回值(续)CREATE PROC C_PROCKCH CHAR(10)AS IF EXISTS(SELECT*FROM SC WHERE Cno=KCH)BEGIN PRINT 已选已选+KCH RETURN(1)END ELSE BE

38、GIN PRINT 未选未选+KCH RETURN(0)END2023年4月29日星期六数据库系统概论106存储过程的返回值(续)存储过程的返回值(续)调用该存储过程,注意接收返回值,与接收返回参数不同。调用该存储过程,注意接收返回值,与接收返回参数不同。DECLARE RETURN_CODE INTPRINT INFO OF COURSE:EXEC RETURN_CODE=C_PROC 2PRINT THE RETURN_CODE IS:+STR(RETURN_CODE)2023年4月29日星期六数据库系统概论107修改、删除存储过程修改、删除存储过程n修改存储过程可以先删除原来的,再创建新的存储过程,修改存储过程可以先删除原来的,再创建新的存储过程,也可以用也可以用ALTER PROCEDURE 命令,格式与创建存储过命令,格式与创建存储过程一样程一样n删除存储过程用删除存储过程用DROP PROCEDURE命令命令 例如:例如:DROP PROCEDURE C_PROC

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|