Oracle10g数据库管理系统.ppt
《Oracle10g数据库管理系统.ppt》由会员分享,可在线阅读,更多相关《Oracle10g数据库管理系统.ppt(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实用数据库技术实用数据库技术第7章Oracle10g数据库管理系统学习内容学习内容lOracle概述lOracle10g数据库安装lOracle10g数据库卸载lOracle10g常用管理工具lOracle10g表管理l使用过程和触发器Oracle 概述概述lOracle公司lOracle数据库Oracle 10g数据库安装数据库安装l服务器安装需求l版本l企业版l标准版l个人版l最低配置CPU:Pentium166内存:128MB硬盘空间:企业版(176GB):标准版(176GB):个人版(172GB)视频:256色Oracle 10g数据库安装数据库安装l客户端安装需求l安装类型l管理者(
2、administrator)l运行时环境(runtime)l自定义(custom)l最低配置CPU:Pentium166内存:128MB硬盘空间:管理者(647MB):运行时环境(486MB)Oracle 10g数据库安装数据库安装过程过程l(略)Oracle 数据库数据库卸载卸载 l1、停止服务l2、卸载Oracle产品l3、清理注册表l4、清理环境变量l5、清理磁盘Oracle卸载卸载 1/5l开始设置控制面板管理工具服务停止所有Oracle服务Oracle卸载卸载 2/5l开始程序OracleInstallationProductsUniversalInstallerl卸装所有Oracl
3、e产品,但UniversalInstaller本身不能被删除Oracle卸载卸载 3/5l运行regeditlHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices滚动这个列表,删除所有Oracle入口。lHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplication,除所有Oracle入口。Oracle卸载卸载 4/5l开始设置控制面板系统高级环境变量l删除环境变量CLASSPATH和PATH中有关Oracle的设定Oracle卸载卸载 5/5l从桌面上、STARTUP(启动
4、)组、程序菜单中,删除所有有关Oracle的组和图标l删除ProgramFilesOracle目录l重新启动计算机,重起后才能完全删除Oracle所在目录,l删除与Oracle有关的文件,选择Oracle所在的缺省目录C:Oracle,删除这个入口目录及所有子目录,并从Windows2000目录(一般为C:WINNT)下删除以下文件ORACLE.INI、oraodbc.ini等等。Oracle10g常用管理工具常用管理工具lOEM控制台lSQL*PLUS工具介绍Oracle10g表管理表管理l在Oracle中建表,主要有两种方式:l一种是在SQL*PLUS中执行建表的SQL语句。l另一种是通过
5、OEM工具。Oracle10g数据中的数据类型数据中的数据类型 数据类型数据类型类型说明类型说明CHAR字符型,最长为字符型,最长为2000BNCHAR基于字符集的字符型,同上基于字符集的字符型,同上VARCHAR2 变长字符型,最长为变长字符型,最长为4000BNVARCHAR2基于字符集的变长字符型,同上基于字符集的变长字符型,同上VARCHAR 同同VARCHAR2LONG变长字符型,最长为变长字符型,最长为2GBNUMBER(s,d)数字型,总位数为数字型,总位数为s位,小数位为位,小数位为d位,总长最大为位,总长最大为38位位DATE 日期型日期型RAW纯二进制数据类型,最长为纯二进
6、制数据类型,最长为2000BLONG RAW 变长二进制数据类型,最长为变长二进制数据类型,最长为2GBBLOB二进制大对象类型,最长为二进制大对象类型,最长为4GBNLOB包含定宽的多位数字符的字符大对象类型,最长为包含定宽的多位数字符的字符大对象类型,最长为4GBCLOB包含单个字符的字符大对象类型,最长为包含单个字符的字符大对象类型,最长为4GBBFILE数据库外的大型二进制文件的输入指示器类型,最大为数据库外的大型二进制文件的输入指示器类型,最大为4GBPL/SQL语言基础语言基础l注释l变量声明l运算符lPL/SQL块结构l控制语句PL/SQL 程序设计简介程序设计简介lPL/SQL
7、是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点。SQL与PL/SQLlPL/SQL是ProcedureLanguage&StructuredQueryLanguage的缩写。ORACLE的SQL是支持ANSI(AmericannationalStandardsInstitute)和ISO92(InternationalStandardsOrganization)标准的产品。PL/S
8、QL是对SQL语言存储过程语言的扩展。为什么使用PL/SQLl有利于客户/服务器环境应用的运行l适合于客户环境PL/SQL块结构块结构lPL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分。DECLARE/*声明部分:在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数*/BEGIN/*执行部分:过程及SQL语句,即程序的主要部分*/EXCEPTION/*执行异常部分:错误处理*/END;PL/SQL块可以分为三类 l无名块:动态构造,只能执行一次。l子程序:存储在数据库中的存储过程、函数及包等。当在数据库上建立好后可以在其它程序中调用它们。l触发器:当数据库发生操
9、作时,会触发一些事件,从而自动执行相应的程序。标识符lPL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同。要求和限制有:l标识符名不能超过30字符;l第一个字符必须为字母;l不分大小写;l不能用-(减号);l不能是SQL保留字。实例实例l下面的例子将会删除所有的纪录,而不是KING的记录。DECLAREv_enamevarchar2(20):=KING;BEGINDELETEFROMempWHEREename=v_ename;END;如何运行如何运行PL/SQL块结构?块结构?如何运行如何运行PL/SQL块结构?块结构?建议的命名方法建议的命名方法PL/SQL变量类型实例l插入一
10、条记录并显示DECLARERow_idROWID;infoVARCHAR2(40);BEGININSERTINTOdeptVALUES(90,SERVICE,BEIJING)RETURNINGrowid,dname|:|to_char(deptno)|:|locINTOrow_id,info;DBMS_OUTPUT.PUT_LINE(ROWID:|row_id);DBMS_OUTPUT.PUT_LINE(info);END;PL/SQL变量类型实例l其中,RETURNING子句用于检索INSERT语句中所影响的数据行数,当INSERT语句使用VALUES子句插入数据时,RETURNING子句还
11、可将列表达式、ROWID和REF值返回到输出变量中。在使用RETURNING子句是应注意以下几点限制:l不能并行DML语句;l不能检索LONG类型信息;l当通过视图向基表中插入数据时,只能与单基表视图一起使用。PL/SQL变量类型实例l修改一条记录并显示DECLARERow_idROWID;infoVARCHAR2(40);BEGINUPDATEdeptSETdeptno=80WHEREDNAME=SERVICERETURNINGrowid,dname|:|to_char(deptno)|:|locINTOrow_id,info;DBMS_OUTPUT.PUT_LINE(ROWID:|row_
12、id);DBMS_OUTPUT.PUT_LINE(info);END;PL/SQL变量类型实例l其中,RETURNING子句用于检索被修改行信息,当UPDATE语句修改单行数据时,RETURNING子句可以检索被修改行的ROWID值,以及行中被修改列的列表达式,并可将他们存储到PL/SQL变量或复合变量中;当UPDATE语句修改多行数据时,RETURNING子句可以将被修改行的ROWID值,以及列表达式值返回到复合变量数组中。在UPDATE中使用RETURNING子句的限制与INSERT语句中对RETURNING子句的限制相同。PL/SQL变量类型实例l删除一条记录并显示DECLARERow_
13、idROWID;infoVARCHAR2(40);BEGINDELETEdeptWHEREDNAME=SERVICERETURNINGrowid,dname|:|to_char(deptno)|:|locINTOrow_id,info;DBMS_OUTPUT.PUT_LINE(ROWID:|row_id);DBMS_OUTPUT.PUT_LINE(info);END;PL/SQL变量类型实例lRETURNING子句用于检索被删除行信息,当DELETE语句修改单行数据时,RETURNING子句可以检索被删除行的ROWID,以及被删除行中列的列表达式,并可将他们存储到PL/SQL变量或复合变量中;
14、当UPDATE语句修改多行数据时,RETURNING子句可以将被修改行的ROWID,以及列表达式值返回到复合变量数组中。在UPDATE中使用RETURNING子句的限制与INSERT语句中对RETURNING子句的限制相同。复合类型复合类型lORACLE在PL/SQL中除了提供象前面介绍的各种类型外,还提供一种称为复合类型的类型-记录和表。l记录类型l使用%TYPEl使用%ROWTYPE记录类型记录类型l记录类型是把逻辑相关的数据作为一个单元存储起来,它必须包括至少一个标量型(数字型、字符型、布尔型、日期型)或RECORD数据类型的成员,称作PL/SQLRECORD的域(FIELD),其作用是
15、存放互不相同但逻辑相关的信息。定义记录类型语法如下:TYPErecord_typeISRECORD(Field1type1NOTNULL:=exp1,Field2type2NOTNULL:=exp2,.FieldntypenNOTNULL:=expn);实例实例DECLARETYPEtest_recISRECORD(CodeVARCHAR2(10),NameVARCHAR2(30)NOTNULL:=abook);V_booktest_rec;BEGINV_book.code:=123;V_book.name:=C+Programming;DBMS_OUTPUT.PUT_LINE(v_book.
16、code|v_book.name);END;使用使用%TYPEl定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE。l使用%TYPE特性的优点在于:l所引用的数据库列的数据类型可以不必知道;l所引用的数据库列的数据类型可以实时改变。实例实例 1DECLARE-用%TYPE类型定义与表相配的字段TYPEt_RecordISRECORD(T_noemp.empno%TYPE,T_nameemp.ename%TYPE,T_salemp.sal%TYPE);-声明接收数据的变量v_empt_Record;BEGINSELECTemp
17、no,ename,salINTOv_empFROMempWHEREempno=7788;DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_emp.t_no)|v_emp.t_name|TO_CHAR(v_emp.t_sal);END;实例实例 2DECLAREv_empnoemp.empno%TYPE:=&no;Typer_recordisrecord(v_nameemp.ename%TYPE,v_salemp.sal%TYPE,v_dateemp.hiredate%TYPE);Recr_record;BEGINSELECTename,sal,hiredateINTORecFROM
18、empWHEREempno=v_empno;DBMS_OUTPUT.PUT_LINE(Rec.v_name|-|Rec.v_sal|-|Rec.v_date);END;使用使用%ROWTYPElPL/SQL提供%ROWTYPE操作符,返回一个记录类型,其数据类型和数据库表的数据结构相一致。l使用%ROWTYPE特性的优点在于:l所引用的数据库中列的个数和数据类型可以不必知道;l所引用的数据库中列的个数和数据类型可以实时改变。实例实例DECLAREv_empnoemp.empno%TYPE:=&no;recemp%ROWTYPE;BEGINSELECT*INTOrecFROMempWHEREem
19、pno=v_empno;DBMS_OUTPUT.PUT_LINE(姓名:|rec.ename|工资:|rec.sal|工作时间:|rec.hiredate);END;运算符和表达式l算术运算符运算符和表达式l关系运算符运算符和表达式l逻辑运算符变量赋值l在PL/SQL编程中,变量赋值是一个值得注意的地方,它的语法如下:lvariable是一个PL/SQL变量,expression是一个PL/SQL表达式。variable:=expression;字符及数字运算特点字符及数字运算特点 l空值加数字仍是空值:NULL+=NULLl空值加(连接)字符,结果为字符:NULL|=BOOLEAN 赋值赋值
20、 l布尔值只有TRUE,FALSE及NULL三个值。如:DECLAREdoneBOOLEAN;/*thefollowingstatementsarelegal:*/BEGINdone:=FALSE;WHILENOTdoneLOOPNull;ENDLOOP;END;游标赋值游标赋值 l游标赋值是通过SELECT语句来完成的,每次执行SELECT语句就赋值一次,一般要求被赋值的变量与SELECT中的列名要一一对应。游标赋值游标赋值 DECLAREemp_idemp.empno%TYPE:=7788;emp_nameemp.ename%TYPE;wagesemp.sal%TYPE;BEGINSELE
21、CTename,NVL(sal,0)+NVL(comm,0)INTOemp_name,wagesFROMempWHEREempno=emp_id;DBMS_OUTPUT.PUT_LINE(emp_name|-|to_char(wages);END;结果:SCOTT-3000可转换的类型赋值可转换的类型赋值 lCHAR 转换为转换为 NUMBER:l使用TO_NUMBER函数来完成字符到数字的转换,如:lv_total:=TO_NUMBER(100.0)+sal;lNUMBER 转换为转换为CHAR:l使用TO_CHAR函数可以实现数字到字符的转换,如:lv_comm:=TO_CHAR(123.
22、45)|元;l字符转换为日期:字符转换为日期:l使用TO_DATE函数可以实现字符到日期的转换,如:lv_date:=TO_DATE(2001.07.03,yyyy.mm.dd);l日期转换为字符:日期转换为字符:l使用TO_CHAR函数可以实现日期到字符的转换,如:lv_to_day:=TO_CHAR(SYSDATE,yyyy.mm.ddhh24:mi:ss);变量作用范围及可见性变量作用范围及可见性 lPL/SQL的变量作用范围特点是:l变量的作用范围是在你所引用的程序单元(块、子程序、包)内。即从声明变量开始到该块的结束。l一个变量(标识)只能在你所引用的块内是可见的。l当一个变量超出了
23、作用范围,PL/SQL引擎就释放用来存放该变量的空间(因为它可能不用了)。l在子块中重新定义该变量后,它的作用仅在该块内。实例实例 DECLAREEmesschar(80);BEGINDECLAREV1NUMBER(4);BEGINSELECTempnoINTOv1FROMempWHERELOWER(job)=president;DBMS_OUTPUT.PUT_LINE(V1);EXCEPTIONWhenTOO_MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE(Morethanonepresident);END;实例实例 续续DECLAREV1NUMBER(4);BEGINS
24、ELECTempnoINTOv1FROMempWHERELOWER(job)=manager;EXCEPTIONWhenTOO_MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE(Morethanonemanager);END;EXCEPTIONWhenothersTHENEmess:=substr(SQLERRM,1,80);DBMS_OUTPUT.PUT_LINE(emess);END;注释注释 在PL/SQL里,可以使用两种符号来写注释,即:l使用双-(减号)加注释V_SalNUMBER(12,2);-工资变量。l使用/*/来加一行或多行注释/*/*文件名:departm
25、ent_salary.sql*/*/示例简单数据插入例子 DECLAREv_enameVARCHAR2(20):=Bill;v_salNUMBER(7,2):=1234.56;v_deptnoNUMBER(2):=10;v_empnoNUMBER(4):=8888;BEGININSERTINTOemp(empno,ename,JOB,sal,deptno,hiredate)VALUES(v_empno,v_ename,Manager,v_sal,v_deptno,TO_DATE(1954.06.09,yyyy.mm.dd);COMMIT;END;示例简单数据删除例子 DECLAREv_empn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle10g 数据库 管理 系统
限制150内