欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据库培训教程学习教案.pptx

    • 资源ID:71935742       资源大小:407.57KB        全文页数:81页
    • 资源格式: PPTX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库培训教程学习教案.pptx

    数据库培训数据库培训(pixn)教程教程第一页,共81页。目录(ml)1 1、ORACLEORACLE数据库简述数据库简述2 2、SQL SQL介绍介绍(jisho)(jisho)3 3、课程目标课程目标4 4、PL/SQL PL/SQL浅谈浅谈4 4、总结总结第1页/共80页第二页,共81页。第第1章章 ORACLE数据库简述数据库简述(jin sh)随着计算机技术、通信技术和网络技术的发展,随着计算机技术、通信技术和网络技术的发展,人类社会已经进入了信息化时代。信息资源已经成人类社会已经进入了信息化时代。信息资源已经成为最重要和宝贵的资源之一,确保信息资源的存储,为最重要和宝贵的资源之一,确保信息资源的存储,以及以及(yj)(yj)其有效性就变得非常重要,而保存信息其有效性就变得非常重要,而保存信息的核心就是数据库技术。对于数据库技术,当前应的核心就是数据库技术。对于数据库技术,当前应用最为广泛的是关系型数据库,而在关系型数据库用最为广泛的是关系型数据库,而在关系型数据库中,中,OracleOracle公司推出的公司推出的OracleOracle数据库是其中佼佼者。数据库是其中佼佼者。本书所基于的数据库为本书所基于的数据库为Oracle 11g Oracle 11g。第2页/共80页第三页,共81页。目录(ml):关系数据库的逻辑模型(mxng)关系数据库的设计规范理解什么是网格技术了解Oracle的应用结构了解Oracle的体系结构第3页/共80页第四页,共81页。1.1 1.1 关系数据库的基本关系数据库的基本关系数据库的基本关系数据库的基本(jbn)(jbn)理论理论理论理论 关系数据库具有坚实的理论基础,这一理论有助于关系数据库的设计和用户对数据库信息需求的有效处理。它涉及的内容有关模式的基本知识、关系数据库的标准语言SQL,以及关系数据理论,在本节中将对这些做简要(jinyo)的介绍。第4页/共80页第五页,共81页。1.1.1 1.1.1 数据库系统与关系数据库数据库系统与关系数据库数据库系统与关系数据库数据库系统与关系数据库 数据库系统是指一个计算机存储记录的系统,它需要特定的软件和一系列硬件(yn jin)支持;并且利用数据库系统能够存储大量的数据记录,支持用户进行检索和更新所需的信息。数据库系统通常在企业应用或科学研究中用于对大量数据进行存储和分析,从而为实际应用提供帮助信息。第5页/共80页第六页,共81页。1.1.2 1.1.2 关系数据库的逻辑关系数据库的逻辑关系数据库的逻辑关系数据库的逻辑(lu j)(lu j)模型模型模型模型在关系数据库的设计阶段,需要为它建立逻辑模型。关系数据库的逻辑模型可以通过实体和关系组成的图来表示,这种图表称为“E-R图”,使用E-R图表示的逻辑模型被称为“ER模型”。一个(y)典型的ER模型由如下三部分组成:实体、联系和属性。第6页/共80页第七页,共81页。1.1.3 1.1.3 关系数据库的设计规范关系数据库的设计规范关系数据库的设计规范关系数据库的设计规范 在关系数据库中,为了保证(bozhng)构造的表(关系)既能准确地反应现实世界,又有利于应用和具体的操作,还需要对构造的表进行规范化,常用的规范化方法就是对关系应用不同的设计范式。在关系数据库中,在构造数据库时必须遵循一定的规则,这种规则就是范式。第7页/共80页第八页,共81页。1.2 Oracle1.2 Oracle数据库与网格数据库与网格数据库与网格数据库与网格(wn)(wn)技术技术技术技术 Oracle数据库是Oracle公司出品的十分优秀的DBMS,当前Oracle DBMS以及相关的产品几乎在全世界各个工业(gngy)领域中都有应用。无论是大型企业中的数据仓库应用,还是中小型的联机事务处理业务,都可以找到成功使用Oracle数据库系统的典范。到目前为止,11g是Oracle数据库的最新版本,它是在10g的基础上对企业级网格计算进行了扩展,提供了众多特性支持企业网格计算。第8页/共80页第九页,共81页。1.2.1 1.2.1 网格网格网格网格(wn)(wn)技术技术技术技术 超级计算机作为复杂科学计算领域的主宰,以其强大的处理能力著称。但以超级计算机为中心的计算模式存在(cnzi)明显的不足,由于它的造价极高,通常只有一些国家级的部门,如航天、气象等部门才有能力配置。而随着人们日常工作遇到的商业计算越来越复杂,人们越来越需要数据处理能力更强大的计算机。于是,人们开始寻找一种造价低廉而数据处理能力超强的计算模式,最终找到了答案网格计算Grid Computing。第9页/共80页第十页,共81页。1.2.2 Oracle1.2.2 Oracle网格网格网格网格(wn)(wn)体系结构体系结构体系结构体系结构 Oracle 10g/11g中的g代表网格计算,Oracle数据库作为第一个为企业级网格计算而设计的数据库,为管理信息和应用提供了最灵活的、成本最低的方式。例如,通过Oracle网格计算,可以在几个互联的数据库服务器网格上运行不同的应用。当应用需求增加时,数据库管理员能够自动为应用提供更多的服务器支持。网格计算使用最高端的负载(fzi)管理机制,使得应用能够共享多个服务器上的资源,从而提高数据处理能力,减少对硬件资源的需求,节省企业成本。第10页/共80页第十一页,共81页。1.3 Oracle1.3 Oracle应用应用应用应用(yngyng)(yngyng)结构结构结构结构 在安装、部署Oracle 11g数据库时,需要根据硬件平台和操作系统的不同采取(ciq)不同的结构,下面介绍几种常用的应用结构。第11页/共80页第十二页,共81页。1.3.1 1.3.1 多数据库的独立宿主多数据库的独立宿主多数据库的独立宿主多数据库的独立宿主(szh)(szh)结构结构结构结构 在安装、部署Oracle 11g数据库时,需要根据(gnj)硬件平台和操作系统的不同采取不同的结构,下面介绍几种常用的应用结构。第12页/共80页第十三页,共81页。1.3.2 1.3.2 客户机客户机客户机客户机/服务器结构服务器结构服务器结构服务器结构(jigu)(jigu)在客户/服务器结构中,数据库服务器的管理和应用分布在两台计算机上,客户机上安装应用程序和连接工具,通过Oracle专用的网络协议SQL*Net建立和服务器的连接,发出(fch)数据请求。服务器上运行数据库,通过网络协议接收连接请求,将执行结果回送客户机。第13页/共80页第十四页,共81页。1.3.3 1.3.3 分布式结构分布式结构分布式结构分布式结构(jigu)(jigu)分布式结构是客户机/服务器结构的一种特殊类型。在这种结构中,分布式数据库系统在逻辑上是整体(zhngt),但在物理上分布在不同的计算机网络里,通过连接网络连接在一起。网络中的每个节点可以独立处理本地数据库服务器中的数据,执行局部应用,同是也可存取处理多个异地数据库服务器中的数据,执行全局应用。第14页/共80页第十五页,共81页。1.4 1.4 数据库体系结构数据库体系结构内存(ni cn)结构:系统全局区(SGA):数据库缓冲区高速缓存、重做缓冲区和各种池 程序全局区(PGA)进程结构:用户进程和服务器进程 后台进程:SMON、PMON、DBWn、CKPT、LGWR、ARCn 等等 存储结构:逻辑:数据库、方案、表空间、段、区和 Oracle 块 物理:数据、参数、重做和 OS 块使用的文件第15页/共80页第十六页,共81页。1.4.1 1.4.1 Oracle Oracle 服务器服务器Oracle 服务器:是一个数据库管理系统,它提供开放、全面、集成的方法进行信息管理由 Oracle 实例(shl)和 Oracle 数据库组成第16页/共80页第十七页,共81页。1.4.2 1.4.2 数据库结构数据库结构数据库结构数据库结构(jigu)(jigu)数据库结构数据库结构-内存内存-进程进程-存储存储 存储结构存储结构内存结构内存结构进程结构进程结构实例 系统全局区系统全局区(SGA)后台进程后台进程数据库文件第17页/共80页第十八页,共81页。1.4.3 1.4.3 内存内存内存内存(ni cn)(ni cn)结构结构结构结构数据库结构数据库结构 内存内存(ni cn)进程进程 存储存储 Java 池数据库缓冲区高速缓存重做日志缓冲区共享池大型池SGAStreams 池服务器进程 1PGA服务器进程 2PGA后台进程PGA第18页/共80页第十九页,共81页。1.4.4 1.4.4 进程进程进程进程(jnchng)(jnchng)结构结构结构结构数据库结构数据库结构 内存内存 进程进程 存储存储 实例SGA后台进程后台进程服务器进程PGA用户进程用户进程用户进程:在数据库用户请求连接到 Oracle 服务器时启动 服务器进程:可以(ky)连接到 Oracle 实例,它在用户建立会话时启动 后台进程:在启动 Oracle 实例时启动第19页/共80页第二十页,共81页。1.4.5 Oracle 1.4.5 Oracle 实例实例实例实例(shl)(shl)管理管理管理管理系统监视器(SMON)数据库写进程(DBWn)日志写进程(LGWR)进程监视器(PMON)归档进程(ARCn)SGAJava 池共享池大型池Streams 池数据库 缓冲区高速缓存重做日志缓冲区检查点(CKPT)控制文件控制文件数据文件数据文件重做日志重做日志 文件文件归档日志归档日志文件文件第20页/共80页第二十一页,共81页。2 2、SQLSQL介绍介绍(jisho)(jisho)SQL诞生于70年代的IBM某实验室。SQL是一种非过程语言,它描述了如何对数据进行检索、插入、删除,但它并不说明如何进行这样的操作(cozu)。SQL最新标准为ANSI-92。尽管该标准要求所有的数据库设计者应遵守这一标准,然而所有的数据库系统、所用的SQL均与ANSI-92存在一定的差异。本文基于ORACLE数据库介绍SQL。本文重点介绍数据库的开发部分而不是管理部分。第21页/共80页第二十二页,共81页。了解数据库的常用对象(duxing)。熟练掌握标准SQL的使用。熟练掌握ORACLE常用标量函数的使用。熟悉SQL的常用优化方法。了解ORACLE的存储过程及触发器的开发。3 3、课程目标、课程目标第22页/共80页第二十三页,共81页。表空间与数据文件用户与权限表索引、PK、FK视图序列内部函数(hnsh)自定义函数(hnsh)存储过程触发器3.13.1、数据库常用、数据库常用(chn yn)(chn yn)对象对象第23页/共80页第二十四页,共81页。常用(chn yn)数据类型表相关DDLSelectinsertUpdateDelete聚集函数常用(chn yn)标量函数谓词3.2.3.2.基本基本(jbn)SQL(jbn)SQL第24页/共80页第二十五页,共81页。字符(z f)类数字类日期类二进制类3.2.1 3.2.1 常用常用(chn yn)(chn yn)数据类型数据类型第25页/共80页第二十六页,共81页。CREATE TABLECREATE TABLE table_name(column_name1 data_type,column_name2 data_type,.)DROP TABLE DROP TABLE table_name ALTER TABLEALTER TABLE table_name ADD column_name datatypeALTER TABLE table_name DROP column_name ALTER TABLE table_name MODIFY column_name 3.2.2 3.2.2 表相关表相关(xinggun)DDL(xinggun)DDL第26页/共80页第二十七页,共81页。SELECT DISTINCTselect_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC|DESC 3.2.3 3.2.3 SELECTSELECT第27页/共80页第二十八页,共81页。INSERT INTO table_nameVALUES(value1,value2,.)INSERT INTO table_name(column1,column2,.)VALUES(value1,value2,.)3.2.4 INSERT3.2.4 INSERT第28页/共80页第二十九页,共81页。UPDATE table_name SET column_name=new_value,WHERE column_name=some_value3.2.5 UPDATE3.2.5 UPDATE第29页/共80页第三十页,共81页。DELETE FROM table_name WHERE column_name=some_value 3.2.6 DELETE3.2.6 DELETE第30页/共80页第三十一页,共81页。INBETWEENLIKEEXISTS3.2.7 3.2.7 3.2.7 3.2.7 谓词谓词谓词谓词(wi c)(wi c)(wi c)(wi c)第31页/共80页第三十二页,共81页。COUNTSUMMAXMINAVGGROUP BYHAVING3.2.8 3.2.8 聚集聚集(jj)(jj)函数函数第32页/共80页第三十三页,共81页。数学(shxu)函数字符类函数SUBSTR、REPLACE、TRIM、LOWER、UPPER日期函数 SYSDATE转换函数TO_CHAR、TO_DATE、TO_NUMBER其他NVL、DECODE、CASE WHEN3.2.9 3.2.9 常用标量常用标量(bioling)(bioling)函数函数第33页/共80页第三十四页,共81页。子查询(chxn)表关联外连接3.3.3.3.高级高级(goj)SQL(goj)SQL第34页/共80页第三十五页,共81页。-订单(dn dn)明细create table orderdetail(orderid int not null,productid int not null,quantity int not null);3.3.1 3.3.1 3.3.1 3.3.1 示例示例示例示例(shl)(shl)(shl)(shl)表(一)表(一)表(一)表(一)第35页/共80页第三十六页,共81页。-产品(chnpn)数据insert into productinfo values(1,ThinkPadR32,IBM,12000);insert into productinfo values(2,ThinkPadR40,IBM,15000);insert into productinfo values(3,Nokia3210,Nokia,1000);insert into productinfo values(4,Nokia4110,Nokia,2000);-订单数据insert into orderinfo values(1,order1,hoperun,to_date(20070101,yyyymmdd);insert into orderinfo values(2,order2,microsoft,to_date(20060101,yyyymmdd);insert into orderinfo values(3,order3,hoperun,to_date(20070105,yyyymmdd);-订单明细数据insert into orderdetail values(1,1,10);insert into orderdetail values(1,2,5);insert into orderdetail values(1,3,2);insert into orderdetail values(2,1,30);insert into orderdetail values(2,2,50);insert into orderdetail values(2,3,60);insert into orderdetail values(2,4,100);insert into orderdetail values(3,1,2);insert into orderdetail values(3,2,3);3.3.1 3.3.1 3.3.1 3.3.1 示例示例示例示例(shl)(shl)(shl)(shl)表(二)表(二)表(二)表(二)第36页/共80页第三十七页,共81页。(1)查询采购(cigu)ThinkPadR32 产品的订单明细:select*from orderdetail where productid=(select productid from productinfo where productname=ThinkPadR32)3.3.2 3.3.2 3.3.2 3.3.2 子查询子查询子查询子查询(chxn)(chxn)(chxn)(chxn)独立子查询独立子查询独立子查询独立子查询(chxn)(chxn)(chxn)(chxn)(一)(一)(一)(一)第37页/共80页第三十八页,共81页。(2)查询采购IBM公司(n s)产品的订单明细:select*from orderdetail where productid in(select productid from productinfo where companyname=IBM)3.3.2 3.3.2 3.3.2 3.3.2 子查询子查询子查询子查询(chxn)(chxn)(chxn)(chxn)独立子查询独立子查询独立子查询独立子查询(chxn)(chxn)(chxn)(chxn)(二)(二)(二)(二)第38页/共80页第三十九页,共81页。(3)查询hoperun 客户(k h)采购的ibm公司产品列表:select*from orderdetail where orderid in(select orderid from orderinfo where customer=hoperun)and productid in(select productid from productinfo where companyname=IBM)order by orderid3.3.2 3.3.2 3.3.2 3.3.2 子查询子查询子查询子查询(chxn)(chxn)(chxn)(chxn)独立子查询独立子查询独立子查询独立子查询(chxn)(chxn)(chxn)(chxn)(三)(三)(三)(三)第39页/共80页第四十页,共81页。(4)查询hoperun 客户(k h)采购的ibm公司价格在13000 以上的所有产品的总件数:select sum(quantity)from orderdetail where orderid in(select orderid from orderinfo where customer=hoperun)and productid in(select productid from productinfo where companyname=IBM and price13000)3.3.2 3.3.2 3.3.2 3.3.2 子查询子查询子查询子查询(chxn)(chxn)(chxn)(chxn)独立子查询独立子查询独立子查询独立子查询(chxn)(chxn)(chxn)(chxn)(四)(四)(四)(四)第40页/共80页第四十一页,共81页。查询2007 年定购(dn u)Nokia产品的客户:select distinct customer from orderinfo where orderdate=to_date(20070101,yyyymmdd)and orderid in(select orderid from orderdetail where productid in(select productid from productinfo where companyname=Nokia)3.3.3 3.3.3 3.3.3 3.3.3 子查询子查询子查询子查询(chxn)(chxn)(chxn)(chxn)子查询子查询子查询子查询(chxn)(chxn)(chxn)(chxn)嵌套嵌套嵌套嵌套第41页/共80页第四十二页,共81页。相关子查询和独立子查询的概念(ginin)。2.3.2(2)中的,查询采购IBM公司产品的订单明细:select*from orderdetail where productid in(select productid from productinfo where companyname=IBM)用exists相关子查询描述为:select*from orderdetail awhere exists(select*from productinfo b where a.productid=b.productid and panyname=IBM)3.3.4 exists3.3.4 exists3.3.4 exists3.3.4 exists相关相关相关相关(xinggun)(xinggun)(xinggun)(xinggun)子查询(一)子查询(一)子查询(一)子查询(一)第42页/共80页第四十三页,共81页。2.3.3中的,查询2007年定购Nokia产品(chnpn)的客户:select distinct customer from orderinfo where orderdate=to_date(20070101,yyyymmdd)and orderid in(select orderid from orderdetail where productid in(select productid from productinfo where companyname=Nokia)用exists相关子查询描述为:select distinct customer from orderinfo awhere a.orderdate=to_date(20070101,yyyymmdd)and exists(select*from orderdetail b where a.orderid=b.orderid and exists(select*from productinfo c where b.productid=c.productid and panyname=Nokia)3.3.4 exists3.3.4 exists3.3.4 exists3.3.4 exists相关相关相关相关(xinggun)(xinggun)(xinggun)(xinggun)子查询(二)子查询(二)子查询(二)子查询(二)第43页/共80页第四十四页,共81页。笛卡尔叉积等值连接(linji)不等值连接(linji)3.3.5 3.3.5 表关联表关联(gunlin)(gunlin)第44页/共80页第四十五页,共81页。select*from orderinfo,orderdetail3.3.5.1 3.3.5.1 表关联表关联(gunlin)(gunlin)笛卡尔叉积笛卡尔叉积第45页/共80页第四十六页,共81页。(1)按照订单号、采购产品名称、数量(shling)显示订单明细信息:select a.orderid,b.productname,a.quantity from orderdetail a,productinfo bwhere a.productid=b.productid3.3.5.2 3.3.5.2 表关联表关联(gunlin)(gunlin)等值连接等值连接第46页/共80页第四十七页,共81页。(2)按照客户名称(mngchng)、订单名称(mngchng)、采购产品名称(mngchng)、数量显示订单明细信息:select c.customer,c.ordername,b.productname,a.quantity from orderdetail a,productinfo b,orderinfo cwhere a.productid=b.productid and a.orderid=c.orderid 3.3.5.3 3.3.5.3 表关联表关联(gunlin)(gunlin)等值连接等值连接第47页/共80页第四十八页,共81页。极少使用(shyng),不作介绍。3.3.5.4 3.3.5.4 表关联表关联(gunlin)(gunlin)不等值连接不等值连接第48页/共80页第四十九页,共81页。插入一条(y tio)新产品数据:insert into productinfo values(5,ThinkPadT41,IBM,20000);查询已订货产品的订货情况select a.productname,b.orderid,b.quantityfrom productinfo a,orderdetail bwhere a.productid=b.productidorder by a.productname,b.orderid查询所有产品的订货情况select a.productname,b.orderid,b.quantityfrom productinfo a left join orderdetail bon a.productid=b.productidorder by a.productname,b.orderid3.3.6 3.3.6 外连接外连接(linji)(linji)(一)(一)第49页/共80页第五十页,共81页。左连接(linji)select a.productname,b.orderid,b.quantityfrom productinfo a left join orderdetail bon a.productid=b.productidorder by a.productname,b.orderid右连接(linji)select a.productname,b.orderid,b.quantityfrom orderdetail b right join productinfo aon a.productid=b.productidorder by a.productname,b.orderid3.3.6 3.3.6 外连接外连接(linji)(linji)(二)(二)第50页/共80页第五十一页,共81页。统计(tngj)所有产品的订货数量:select a.productname,nvl(sum(b.quantity),0)from productinfo a left join orderdetail bon a.productid=b.productidgroup by a.productnameorder by a.productname3.3.6 3.3.6 外连接外连接(linji)(linji)(三)(三)第51页/共80页第五十二页,共81页。基于数据库的应用系统性能的优化主要从两个方面来考虑,即DBA级和SQL级。DBA级的优化主要包括:数据库内存及缓冲池的合理配置、数据表空间(数据段)和索引表空间(数据段)的分离、裸设备/文件系统的合理使用以及(yj)巨型表的分区等等。本文主要介绍较常用的、可操作性较强的SQL级的优化方法。3.43.4.SQ SQL L优化(一)优化(一)优化(一)优化(一)第52页/共80页第五十三页,共81页。全表扫描:当数据库服务为执行某一个SQL语句需要对表中的每一个记录进行检查时就会发生全表扫描。它通常(tngchng)在执行SELECT语句时发生,但有时也会在更新和删除记录时发生。全表扫描通常(tngchng)是因为在WHERE子句中使用了索引中没有的字段。一般情况下,应避免全表扫描。3.43.4.SQ SQL L优化(二)优化(二)优化(二)优化(二)第53页/共80页第五十四页,共81页。全表扫描:当数据库服务为执行某一个SQL语句需要对表中的每一个记录进行检查时就会发生(fshng)全表扫描。它通常在执行SELECT语句时发生(fshng),但有时也会在更新和删除记录时发生(fshng)。全表扫描通常是因为在WHERE子句中使用了索引中没有的字段。一般情况下,应避免全表扫描。3.43.4.SQ SQL L优化(三)优化(三)优化(三)优化(三)第54页/共80页第五十五页,共81页。创建索引:避免全表扫描的首要手段就是创建索引。在下列情况下,需要建立索引:最大的限制条件返回表的数据库小于表总数据量的10%。最大的限制条件在SQL语句中是经常(jngchng)使用的。列经常(jngchng)被ORDER BY或GROUP BY子句所引用。在SQL中应尽量避免在索引列上使用函数。如ORDER BY TO_NUMBER(USERID)3.43.4.SQ SQL L优化(四)优化(四)优化(四)优化(四)第55页/共80页第五十六页,共81页。版本较老得ORACLE数据库中WHERE子句的布局:查询优化器对WHERE子句中的条件(tiojin)是从后向前读。尽量把最大条件(tiojin)的限制条件(tiojin)语句放在最后。3.43.4.SQ SQL L优化(五)优化(五)优化(五)优化(五)第56页/共80页第五十七页,共81页。OR、IN、EXISTS:尽量少用OR,而用IN。尽量用EXISTS代替IN,因为IN不使用索引(suyn),而EXISTS使用索引(suyn)进行优化。3.43.4.SQ SQL L优化(六)优化(六)优化(六)优化(六)第57页/共80页第五十八页,共81页。存储过程可简单地理解为一个处理复杂业务逻辑的一组SQL代码块。存储过程的优势主要有:存储过程业务逻辑集中,方便维护。存储过程是预编译的,可提高(t go)性能。存储过程可大量减少应用程序与数据库服务器的通信,减少网络负荷。在多层架构体系出现之前,很多应用系统采用存储过程来封装业务逻辑。3.5.3.5.存储存储存储存储(cn ch)(cn ch)过程过程过程过程第58页/共80页第五十九页,共81页。根据订单号删除订单及其明细信息。CREATE OR REPLACE PROCEDURE del_order(v_order_id in varchar2)asbegin -删除子表 delete from orderdetail where orderid=v_order_id;-删除主表 delete from orderinfo where orderid=v_order_id;commit;end;/执行该存储(cn ch)过程:execute del_order(1);3.5.1 3.5.1 存储存储存储存储(cn ch)(cn ch)过程示例过程示例过程示例过程示例第59页/共80页第六十页,共81页。触发器机制从本质上来说是一种特殊类型的存贮过程,它可以在下列的三种情况之一发生时自动运行。更新(gngxn)插入删除。触发器机制所进行的活动是被默认为事务处理的一部分进行。3.63.6.触发器触发器触发器触发器第60页/共80页第六十一页,共81页。对插入或修改(xigi)userinfo.useraddr 字段的null值自动转换成空字符串。CREATE OR REPLACE TRIGGER trg_userinfo BEFORE INSERT OR UPDATE ON userinfo FOR EACH ROWBEGIN IF(:new.useraddr IS NULL)THEN :new.useraddr:=;END IF;END;3.6.1 3.6.1 触发器示例触发器示例触发器示例触发器示例(shl)(shl)第61页/共80页第六十二页,共81页。本部分内容前提要求熟练掌握了基本的SQL语句。本部分将涉及到PL/SQL语句块结构(jigu)、变量和类型、错误处理、控制结构(jigu)、游标等内容。4.PL/SQL4.PL/SQL浅谈浅谈浅谈浅谈(qin tn)(qin tn)第62页/共80页第六十三页,共81页。为什么使用PL/SQL 一)PL/SQL是用于从各种环境中访问Oracle数据库的一 种编程语言。它与数据库服务器集成在一起,因此,PL/SQL代码可以得到(d do)快速有效的处理。二)PL/SQL将SQL语言(4GL)强大性和灵活性与3GL的过程化结构融为一体。三)网络流量减少,应用程序执行得更快。PL/SQL概述(i sh)第63页/共80页第六十四页,共81页。PL/SQL语句(yj)块PL/SQL程序的基本单元是语句(yj)块,所有的语句(yj)块包含三个基本的部分:声明部分、执行部分和异常处理部分。只有执行部分是必须的,其他二个部分都是可选的。有二种类型的语句(yj)块:匿名的和命名的。DECLAREBEGINEXCEPTIONEND;4.1.PL/SQL4.1.PL/SQL语句语句语句语句(yj)(yj)块块块块第64页/共80页第六十五页,共81页。变量和类型在PL/SQL和数据库之间是通过变量传送消息的。变量在语句块的声明部分声明的。变量声明我们通过PL/SQL语句块中的变量与数据库进行通信(tng xn),来自数据库的信息可以被赋值给变量,而变量中的内容也可以被插入到数据库中。变量在语句块的声明部分被声明。声明变量如果一个变量没有初始化,它会被缺省地被赋值为Null,如果指明是Not Null,那么该变量就必须初始化。如果在变量声明中使用了CONSTANT,那么该变量必须要初始化,在声明过程中也可以用关键字DEFAULT替换:=在声明部分,每一行只能声明一个变量。下面的声明是错误的DECLARE v_Firstname,v_Lastname VARCHAR2(20);4.2.4.2.变量变量变量变量(binling)(binling)和类型和类型和类型和类型第65页/共80页第六十六页,共81页。PL/SQL类型PL/SQL类型有:标量类型、复合类型、LOB类型、引用类型、对象类型使用%TYPE在许多情况下,PL/SQL变量用来处理存储(cn ch)在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。DECLAREv_Firstname students.first_name%TYPE;用户定义子类型子类型是基于现有类型的PL/SQL类型。语法:SUBTYPE new_type IS original_type;如:DECLARE SUBTYPE t_loop IS NUMBER(5);v_Count t_loop;4.2.1 PL/SQL4.2.1 PL/SQL类型类型类型类型(lixng)(lixng)第66页/共80页第六十七页,共81页。什么是异常声明异常预定义异常用户自定义异常抛出(po ch)异常处理异常创建错误消息RAISE_APPLICATION_ERROR(error_number,error_messages,keep_errors)4.34.3.错误处理(一)错误处理(一)第67页/共80页第六十八页,共81页。异常传播可执行部分产生的异常声明(shngmng)部分出现的异常异常部分产生的异常4.34.3.错误处理(二)错误处理(二)第68页/共80页第六十九页,共81页。PL/SQL 控制结构IF-THEN-ELSECA

    注意事项

    本文(数据库培训教程学习教案.pptx)为本站会员(一***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开