《Oracle数据库的开发简介.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库的开发简介.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle数据库开发简介及在集装箱管理信息系统中的应用内容1:PL/SQL语言介绍2:ORACLE常用工具介绍3:第三方开发管理工具介绍PL/SQL语言介绍PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE服务器和其他工具中。主要介绍以下几方面:1:PL/SQL语法的特点。2:基本的SQL语句。3:PL/SQL块结构。4:PL/SQL块语法。5:四种类型的可存储的程序块。6:一个PL/SQL块的例子。7:PL/SQL块和事务的关系。PL/SQL语法的特点PL/SQL的特点如下:1:PL/SQL是一种高性能的基于事务处理的语言,能运行在任何O
2、RACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。2:PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型3:PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。4:可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。5:PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都
3、是非常便利的6:对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。基本的SQLDML语法SQL(StructuredQueryLanguage)定义Oracle中的数据是如何被处理的。类别示例SQL语句数据操纵语言SELECT,INSERT,UPDATE,DELETE等数据定义语言DROP,CREATE,ALTER,GRANT,REVOKE等事务控制COMMIT,ROLLBACK等嵌入式SQLCONNECT,DE
4、CLARECURSOR等数据库操纵语言(DATEMANIPULATIONLANGUAGEDML)用来改变表中的数据或者查询数据库表中的数据但是不会表或者其他对象的结构。SELECT语句:DECLAREv_StudentRecordstudent%ROWTYPE;v_Departmentclasses.department%TYPE;v_Courseclasses.course%TYPE;BEGINSELECT*INTOv_StudentRecordFROMstudentWHEREid=1000;SELECT department,courseINTOv_Department,v_CourseF
5、ROMstudentWHEREroom_id=999;END;INSERT语句:DECLAREv_StudentIdstudent.studentId.%TYPE;BEGINSELECTstudent_seq.NEXTVALINTOv_StrdentIdFROMdual;INSERDINTOstudent(id,first_name,last_name)VALUES(v_StudentId,李,小二);INSERTINTOstudent(id,first_name,last_name)VALUES(student_seq.NEXTVAL,WANG,SUN);END;UPDATE语句:DECLA
6、REv_Majorstudent.major%TYPE;v_CreditIncreaseNUMBER:=3;BEGINv_Major:=History;UPDATEstudentSETcurrent_credits=current_credits+v_CreditlncreaseWHEREmajor=v_Major;v_Major:=Chemistry;UPDATEstudentSETcurrent_credits=current_credits+10WHEREmajor=v_Major;END;DELETE语句:DECLAREv_StudentCutoffstudent.studentCut
7、off.%TYPE;BEGINv_StudentCutoff:=10;DELETEFROMclassesWHEREcurrent_student=v_StudentCutoff;END;WHERE语句:SELECT,INSERT,UPDATE,DELETE语句所有都将WHERE子句作为其操作的一个不可缺少的部分进行包含。WHERE子句由条件组成,中间用AND,OR和NOT这样的布尔运算符连接起来,条件通常采用比较的形式。DECLAREv_StudentCutoffstudent.studentCutoff.%TYPE;BEGINv_StudentCutoff:=10;DELETEFROMcla
8、ssesWHEREcurrent_student=v_StudentCutoff;END;一些DDL介绍1:系统角色和权限系统角色名被赋予的权限CONNECTALTERSESSION,CREATEDATABASELINK,CREATESEQUENCE,CREATESESSION,CREATESYNONYM,CREATETABLE,CREATEVIEW,CREATECLUSTERRESOURCECREATECLUSTER,CREATEPROCEDURE,CREATESEQUENCE,CREATETABLE,CREATEFUNCTIONDBA所有系统权限自定义角色的语法:角色(Role)本质上就是
9、一个权限的集合。CREATEROLEtable_query;GRANTSELECTONstudentsTOtable_query;GRANTSELECTONclassesTOtable_query;GRANTUPDATEONstudentstotable_query;REVOKESELECT,UPDATEONstudentsFROMtable_query;REVOKESELECTONclassesTOtable_query;GRANT语法:GRANTprivilegeONobjectTOgrantee;例子:给用户赋予操作的权限:GRANTSELECTONclassesTOuserA;把角色权
10、限赋予用户:GRANTCONNECTTOuserA;2:事务控制:事务(TRANSACTION)是一系列作为一个单元被成功或不成功执行的SQL语句。事务是关系型数据库的标准部件并且可以避免不一致的数据。当向数据库发出了COMMITORROLLBACK语句,那么该事务就被终结了.COMMIT:A:事务完成的工作都是永久性的。B:其他的会话可以看到此事务所进行的修改。C:事务所需要执行的所有加锁(LOCK)处理都被释放了。ROLLBACK:A:事务完成的所有工作都被取消(UNDO),就好像没有执行这些命令一样。B:事务所需要执行的所有加锁(LOCK)处理都被释放了。保存点(SAVEPOINT):R
11、OLLBACK语句会撤消掉整个的事务,但是如果使用了SAVEPOINT命令,那么只有部分的事务需要被取消。BEGININSERTINTOtemp_table(char_col)VALUES(INSERTONE);SAVEPOINTA;INSERTINTOtemp_table(char_col)VALUES(INSERTTWO);SAVEPOINTB;INSERTINTOtemp_table(char_col)VALUES(INSERTTHREE);SAVEPOINTC;COMMIT;END;如果我们在需要的插入语句的位置上放入:ROLLBACKTOB;则只提交前两条语句,第三条语句回滚了。PL
12、/SQL块结构PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。与其他语言相同,变量在使用之前必须声明,PL/SQL提供了独立的专门用于处理异常的部分,下面描述了PL/SQL块的不同部分:1:声明部分(Declarationsection)声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。2:执行部分(Executablesection)执行部分是PL/SQL块中的指令部分,由关键字BEGI
13、N开始,所有的可执行语句都放在这一部分,其他的PL/SQL块也可以放在这一部分。3:异常处理部分(Exceptionsection)这一部分是可选的,在这一部分中处理异常或错误。PL/SQL的块语法的块语法PL/SQL块语法DECLARE-declarationstatementsBEGIN-executablestatementsEXCEPTION-exceptionstatementsEND说明PL/SQL块中的每一条语句都必须以分号结束,SQL语句可以使多行的,但分号表示该语句的结束。一行中可以有多条SQL语句,他们之间以分号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以
14、END结束。注释由-标示。PL/SQL块的命名和匿名PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名程序块可以用在服务器端也可以用在客户端。命名程序块可以出现在其他PL/SQL程序块的声明部分,这方面比较明显的是子程序,子程序可以在执行部分引用,也可以在异常处理部分引用。四种程序块:四种程序块:函数函数(FUNCTION)函数是命名了的、存储在数据库中的函数是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个程序块。函数接受零个或多个输入参数,有一个返回值,返回值的数据类型在创建函数时定义。定义函数输入参数,有一个返回值,返回值的数据类型在创建函数时定义。定义
15、函数的语法如下:的语法如下:FUNCTIONnameparameter,parameter,.)RETURNdatatypesISlocaldeclarationsBEGINexecutestatementsEXCEPTIONexceptionhandlersENDname过程过程(PROCEDURE)存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用,定义存储过程的语法如下:PROCEDUREn
16、ame(parameter,parameter,.)ISlocaldeclarationsBEGINexecutestatementsEXCEPTIONexceptionhandlersENDname包(包(PACKAGE)包其实就是被组合在一起的相关对象的集合,当包中任何函数或存储过程被调用,包就被加载入内存中,包中的任何函数或存储过程的子程序访问速度将大大加快。包由两个部分组成:包头:(包头:(PACKAGE)包体包体:(:(PACKAGEBODY)触发器与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器被触发。触发器(触发器(TRIGGER)一个简单的一个简单的
17、PL/SQL块块在sqlplus中执行一个简单的pl/sql匿名块SqlDECLAREv_deptidnumber;v_deptnamevarchar2(20);BEGINselecta.dept_id,a.dept_nameintov_deptidfromempawherejob=PRESIDENT;EXCEPTION:WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(EXCEPTION);ENDSql/PL/SQLproceduresuccessfullycompletedORACLE系统实用工具介绍1、应用开发(ApplicationDevelopment)SQL*P
18、lus:Oracle_HomeBINSQLPLUSW.EXE2、数据库管理(DatabaseAdministration)DatabaseConfigurationAssistant:数据库配置助手:创建、配置、删除数据库。DBAStudio:将多个数据库工具并入一个应用程序中。DBAStudio管理以下对象:例程:包括启动、关闭和例程化例程。方案:包括表、索引和Oracle8对象。安全性:包括用户帐户、角色和权限。存储:包括表空间、数据文件和回退段。3、网络管理(NetworkAdministration)Net8Assistant配置网络部分(连接描述TNSNAMES.ORA、监听器LIS
19、TENER.ORA)Net8ConfigurationAssistant功能基本同上,提供基本的配置,要获得高级配置操作,或配置此工具未包括的Net8的其它部分的详细信息,请使用Net8AssistantOracleODBCTest连接、测试OracleODBC的工具4:其他SVRMGRL:Oracle服务器管理:OracleServerManagerLSNRCTL:监听器管理程序EXP/IMP:逻辑备份、恢复工具SQL*Loader:大量数据插入工具ORAPWD:修改sys或internal密码工具TOADTOAD是QuestSoftware公司的系列化Oracle开发和管理工具套件,包含集
20、成化的开发、测试、管理与优化功能,可以大大提高数据库开发和管理人员的工作效率。团队编码及版本控制功能。轻松浏览和管理Oracle数据库TOAD的SchemaBrowser(模式浏览器)模块内置了方便易用的多页浏览功能,可以迅速查看和管理Oracle数据字典。通过点击特定对象,TOAD可以立即展示其相关信息,避免了逐层查看的冗长过程。SchemaBrowser可以管理所有数据库对象。快速准确的PL/SQL开发TOADEditor的功能可以大大提高开发效率,消除编程错误,缩短应用的开发周期。用户可以同时编辑多个文件,包括SQL、PL/SQL、HTML、Java和纯文本文件。图形化用户界面提供了快速
21、易用、可灵活配置的开发环境。强大的版本控制功能TOADCoding(团队编码模块)可实现开发队伍内的互相协调,既允许多个开发者同时查看源代码或数据库对象,又具有锁定功能以防止代码被覆盖。PL/SQLDebuggerPL/SQLDebugger提供了点击式应用排错功能,节省了大型项目的开发和测试时间。通过与ProcedureEditor集成,开发人员得以逐行编辑和调试存储程序,如同在服务器上进行开发。PL/SQLDebugger可以监视变量值的变化,增强对应用程序执行过程的控制。用户甚至可以在执行过程中改变变量的内容。调试工作能够与正常的程序执行同步进行,应用的执行不受影响。用户也不必在代码中自
22、行编写错误捕捉逻辑,以识别和修改错误。DBAModuleDBA模块实现了日常数据库管理的自动化,拓展了TOAD的功能和灵活性,使用户能够以浏览器模式,查看多个数据库和实例的性能信息。通过直观的图形化界面,用户可以完成数据库计划的比较和同步,实现表空间、控制文件和Redo日志管理的管理,以及安全管理、批处理任务调度和国际语言(NLS)参数的修改和设置。DBA模块还提供了Oracle输入/输出和数据库创建向导,以及方便易用的SQL*Loader界面,提高了数据装载和卸载的效率。SchemaBrowser界面全面支持所有DBA管理对象的创建、修改和丢弃功能。应用优化和专家建议XpertTuning模
23、块是对Oracle优化技术的补充,可以大幅提升开发人员的优化技能。通过分析特定SQL语句及底层的数据库环境,XpertTuning模块可推荐不同的SQL优化方案,以提高应用系统的性能。AutoTune则可以进一步生成推荐的SQL语句,实现自动优化功能。PL/SQLDEVELOPER1、优点:a、全而支持oracle7.x、8.x、9i,采用oci直接oracle,效率是同类软件中最好的,决对不比sqlplus慢。b、它是一个多线程的应用,不像toad或sqlplus执行了一个大的操作界面就像死掉一样。c、它里而也引入了project的概念,非常适用应用的开发,调试存储过程,一些oracle的基
24、本结构在它之中也都有相应的模版,非常方便。d、它内置了一个类似sqlplus的命令行接口,不过可比sqlplus好用得多,试一下你就知道了。e、它也非常适合你管理和调优,杀进程、解锁、生成库对像的报告、编译无效的oracle的对象、查看语句的执行计划等等这些功能一应俱全。f、它还有类似delphi、vb的语句的自动提示的功能2、缺点:它没有像toad把一些dba常用的功能以图形的方式展现出来,比如表空间的使用比这些内容,程序还应进一步丰富。PL/SQLDeveloper-TheIDEPL/SQLDeveloper-ThePL/SQLEditorPL/SQLDeveloper-TheIntergratedDebuggerPL/SQLDeveloper-TheSQLWindowPL/SQLDeveloper-CommandWindowPL/SQLDeveloper-TheObjectBrowser图例