oracle存分子分母,Oracle存储过程从入门到精通.ppt

SQL使用时应注意的地方 当使用SELECT子句查询数据时,应尽量避免使用万用字符(*),传回所有数据行。尽量利用WHERE子句进一步限制查询结果,以确保所得的数据是有用的数据,降低传送过多数据所造成的负荷; 尽量避免反复访问同一张或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据到临时表中,然后再做连接; 尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作; 注意where字句写法,必须考虑语句顺序,应该根据索引顺序、范围大小来确定条件子句的前后顺序,尽可能的让字段顺序与索引顺序相一致,范围从大到小; 不要在where子句的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引; 注意存储过程中参数和数据类型的关系,并注意表之间连接的数据类型,避免不同数据类型之间的连接; 尽可能的使用索引字段作为查询条件,尤其是聚簇索引。 课程回顾 1、存储过程的特点 2、存储过程的定义、维护及调用方式 3、存储过程中的复合数据类型及CTE 4、存储过程中的异常处理 5、存储过程中的事务处理 6、存储过程中的注意事项 THE END谢 谢 * * * * * * * * * * * Oracle存储过程 基础培训 目录 1、我们为什么要用存储过程? 2、存储过程是如何定义和维护的? 3、我们如何调用存储过程? 4、存储过程中常用的复合数据处理方式及CTE 5、存储过程如何进行异常处理? 6、存储过程如何进行事务处理? 7、我们应如何优化存储过程? 1、我们为什么要用存储过程? 存储过程是指用于特定操作的PL/SQL块,是由流控制和SQL语句书写的过程。 存储过程经编译和SQL优化后存储在数据库服务器中,使用时只要调用即可。在Oracle数据库中,若干个有联系的存储过程,可以组合在一起构成包。 1、我们为什么要用存储过程? 存储过程具有如下特点: 1)存储过程是预编译过的,并且经优化后存储于SQL内存中,使用时无需再次编译,提高了工作效率; 2)存储过程的代码直接存放于数据库中,一般由客户端直接通过存储过程的名字进行调用,减少了网络流量,加快了系统执行速度,例如在进行百万以上的大批量数据查询时,使用存储过程分页要比其他方式分页快得多; 3)使用存储过程可以减少SQL注入式攻击,提高了系统的安全性,执行存储过程的用户要具有一定的权限才能使用存储过程,没有数据操作权限的用户只能在其控制下间接地存取数据; 1、我们为什么要用存储过程? 4)在同时进行主、从表及多表间的数据维护及有效性验证时,使用存储过程比较方便,而且可以有效利用SQL中的事务处理的机制; 5)使用存储过程,可以实现存储过程设计和编码工作分开进行,只要将存储过程名、参数、及返回信息告诉编码人员即可; 6)但使用存储过程封装业务逻辑将限制应用程序的可移植性;另外,如果更改存储过程的参数或者其返回的数据及类型的话,需要修改应用程序的相关代码,比较繁琐。 2、存储过程是如何进行定义和维护的? 存储过程的定义: CREATE [OR REPLACE] PROCEDURE procedure_name[(parameter1 [model] datatype1,parameter2 [model] datatype2 ...)]IS [AS]BEGIN PL/SQL Block;END [procedure_name]; 其中: procedure_name是存储过程的名字,parameter用于指定参数,model用于指定参数模式,datatype用于指定参数类型, IS [AS]用于开始PL/SQL代码块。 注:当定义存储过程的参数时,只能指定数据类型,不能指定数据长度 2、存储过程是如何进行定义和维护的? 1)建立存储过程时,既可以指定存储过程的参数,也可以不提供任何参数。 2)存储过程的参数主要有三种类型:输入参数(IN)、输出参数(OUT)、输入输出参数(IN OUT),其中IN用于接收调用环境的输入参数,OUT用于将输出数据传递到调用环境,IN OUT不仅要接收数据,而且要输出数据到调用环境。 3)在建立存储过程时,输入参数的IN可以省略。 2、存储过程是如何进行定义和维护的? CREATE OR REPLACE PROCEDURE USP_OutTime IS BEGIN DBMS_OUTPUT.PUT_LINE(SYSDATE); END USP_OutTime; 2、存储过程是如何进行定义和维护的? CREATE OR REPLACE PROCEDURE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值