Oracle9i管理工具第3章Oracle9i关系数据库3.1SQL*Plus交互式应用程序3.2SQL*PlusWorksheet开发环境3.4Oracle企业管理器(OEM)3.5移植工具3.6网络管理3.7性能监测器3.8分析工具LogMiner本章内容3.3iSQL*Plus3.9配置链接数据库SQL*Plus是Oracle数据库的一个基本工具,允许用户使用SQL命令交互式地访问数据库,并允许使用SQL*Plus命令格式化输出数据。通过SQL*Plus,可以完成启动和停止数据库创建和运行查询更新数据格式化输出数据报表运行SQL脚本文件等操作是DBA和开发人员都必须掌握的一个工具3.1SQL*Plus交互式应用程序一SQL*Plus的启动和关闭1.SQL*Plus的启动(1)从“开始”菜单启动,直接登录进入登录的system用户只有NORMAL权限在安装客户机时配置的网络服务名一SQL*Plus的启动和关闭1.SQL*Plus的启动(1)从“开始”菜单启动,直接登录进入要使system用户具有SYSDBA权限,必须显式指明登录身份。一SQL*Plus的启动和关闭1.SQL*Plus的启动(2)从命令行启动在命令行下输入如下命令:sqlplus用户名/口令@主机字符串@filename.sqlparameter...•一般用于启动字符界面的SQL*Plus•还可被安装程序所调用,执行相关脚本文件一SQL*Plus的启动和关闭1.SQL*Plus的启动(3)由Oracle企业管理器控制台OEMC进入•注意SQL*Plus启动后显示的提示信息–连接数据库的版本、安装的数据库选件出现SQL提示符2.SQL*Plus的关闭结束SQL*Plus会话的方法有两种:①直接关闭窗口;②在SQL提示符后键入exit或quit命令,窗口自动关闭。③作为一个良好的习惯,应使用命令退出SQL*Plus可输入三种类型的命令SQL命令PL/SQL块SQL*Plus命令二SQL*Plus命令SQL命令、SQL*Plus命令均不区分大小写SQL命令SQL命令用于对数据库进行操作SQL命令不可以简写SQL命令存放于SQL缓冲区中(只保留一条最近执行的),可调出进行编辑,可反复运行。一条语句可以用一行或多行输入,三种方法结束一条语句:用分号结束:结束SQL语句输入,并执行该语句;用处于单独一行的符号“/”:结束SQL语句输入,并执行该语句;用一个空行:结束SQL语句输入,但不执行。二SQL*Plus命令输入PL/SQL语句块在SQL*Plus中进入PL/SQL块输入模式的方法有两种:输入DECLARE或BEGIN并回车;输入创建存储过程或函数的语句(如CREATEPROCEDURE)块输入完成后用“.”结束输入,回到命令提示符状态,这时,PL/SQL块存入了SQL缓存,要执行该块,在命令提示符下输入RUN或“/”即可。二SQL*Plus命令二SQL*Plus命令SQL*Plus命令SQL*Plus命令用于操作SQL语句和PL/SQL块、格式化和打印查询结果,设置环境选项和提供帮助信息等。SQL*Plus命令可以简写,与SQL语句和PL/SQL块的语法不同。它不需要用分号表示语句结束,当用户输入完一条SQL*Plus命令后,按回车直接运行该命令。如果希望在多行上输入一条SQL*Plus命令,可以通过在行尾输入连字符“-”,以便在下一行接着输入。二SQL*Plus命令常用得SQL*Plus命令包括:(1)环境维护。(2)格式设置命令。(3)行编辑和执行命令。(4)输入输出命令。(5)其他命令。二SQL*Plus命令(1)环境维护命令环境参数设置说明headlineoff关闭页眉。这个命令在创建数据文件时很有用处。pagesize55/60输出页面的行数。常用55或如果数据文件用于输出,设为0。linesize88/132输出页面水平尺寸,例如88列或者132列。trimspoolon从spool输出中去掉空白。feedbackoff禁止返回的数据行数。echooff在SQL语句运行时,不回送这些语句。spooloutputname把查询结果输出到指定的文件中。spooloff停止输出的假脱机。termouton禁止把输出显示到屏幕上。二SQL*Plus命令(1)环境维护命令1.SHOW命令【例】查看所有系统变量值。SQLSHOWall;【例】显示当前连接用户。SQLSHOWuser;【例】把错误信息列出来。SQLSHOWerror;二SQL*Plus命令(1)环境维护命令2.SET命令使用SET命令可以设置SQLPLUS的环境参数。格式:SET环境变量名值【例】禁止输出列标题。SQLSETheadingoff;heading的默认值为ON。【例】禁止显示最后一行的计数反馈信息,默认值为“对6个或更多的记录,回送ON”。SQLSETfeedbackoff;二SQL*Plus命令(1)环境维护命令2.SET命令使用SET命令可以设置SQLPLUS的环境参数。【例】设置查询SQL语句的执行时间,以便测试数据库的性能。SQLSETtimingon;timing的默认值为OFF。【例】设置默认提示符,默认值就是SQL。SQLSETsqlpromptSQL二SQL*Plus命令(2)格式设置命令1.表头和表尾TTITLE和BTITLE命令可以自动地在每页的顶部和底部显示日期和页号。【例】表头和表尾。SQLTTITLEcenter蓝天集团公司员工工资统计表SQLBTITLE制表人:sql.userright页码:sql.pno这个标题的显示结果为:蓝天集团员工工资统计表制表人:SCOTT页码:2二SQL*Plus命令(2)格式设置命令1.表头和表尾【例】退出命令。SQLTTITLEOFF;SQLBTITLEOFF;二SQL*Plus命令(2)格式设置命令2.列格式COLUMN命令用于制定输出列的标题、格式和处理的设置。2.列格式1)改变缺省的列标题COLUMNcolumn_nameHEADINGcolumn_headingForexample:Sqlselect*fromdept;DEPTNODNAMELOC-----------------------------------------------10ACCOUNTINGNEWYORKsqlcolLOCheadinglocationsqlselect*fromdept;DEPTNODNAMElocation------------------------------------------------10ACCOUNTINGNEWYORK2.列格式2)不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQLcoljobnoprintSQLselectempno,ename,jobfromemp;EMPNOENAME--------------------------------------------------7369SMITH7499ALLEN7521WARD2.列格式3)设置列标题的对齐方式JUS[TIFY]{L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQLcolenamejustifycenterSQLselectempno,ename,jobfromemp;EMPNOENAMEJOB-----------------------------------------------------------7369SMITHCLERK7499ALLENSALESMAN7521WARDSALESMAN对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边2.列格式4)格式化NUMBER类型列的显示:SQLCOLUMNSALFORMAT$99,990SQLselect*fromempDepartmentNameSalaryCommission---------------------------------------30ALLEN$1,6003005)显示列值时,如果列值为NULL值,用text值代替NULL值COMMNUL[L]textSQLCOLCOMMNUL[L]text2.列格式4)格式化NUMBER类型列的显示:SQLCOLUMNSALFORMAT$99,990SQLselect*fromempDepartmentNameSalaryCommission---------------------------------------30ALLEN$1,6003005)显示列值时,如果列值为NULL值,用text值代替NULL值COMMNUL[L]textSQLCOLCOMMNUL[L]text二SQL*Plus命令(2)格式设置命令3.分组显示BREAK和ORDERBY一起使用可以控制列输出的统一排序。【例】分组练习。SQLBREAKONdeptnoSQLSELECTdeptno,enameFROMempORDERBYdeptno;结果如下:DEPTNOENAME100SMITHJERRY200FORDSCOTT300JAMESWARK----------------------------------------------二SQL*Plus命令(3)行编辑命令命令功能A[PPEND]text将文本的内容附加在当前行的末尾C[HANGE]/old/new将旧文本old替换为新文本new的内容C[HANGE]/text/删除当前行中text指定的内容CL[EAR]BUFF[ER]删除SQL缓冲区中的所有命令行DEL删除当前行DELn删除指定的n行DELmn删除由m行到n行之间的所有命令行I[NPUT]在当前行后插入任意数量的命令行I[NPUT]text在当前行后插入一行text指定的命令行L[IST]列出SQL缓冲区中的所有命令行L[IST]n列出SQL缓冲区中指定的第n命令行L[IST]mn列出SQL缓冲区中由m行到n行之间的所有命令行R[UN]显示并运行缓冲区中的当前命令行n指定第n命令行为当前行ntext用text文本的内容替代第n行Otext在第一行之间插入text指定的文本二SQL*Plus命令(3)行编辑命令行编辑命令主要是对于SQL提示符下的命令的编辑。1.EDIT命令格式:EDIT文件名;功能:把当前目录中指定的.sql文件调入编辑器进行编辑。注意:这里的“当前行”指在最近执行的命令中最近一次的命令(即当前缓存区中的最后一条命令)。【例】创建s.sql文件。SQLEDITs;如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,这样就可以输入和编辑SQL命令了,例如输入“SELECT*FROMtab;”,存盘退出。二SQL*Plus命令(3)行编辑命令2.APPEND命令格式:A[PPEND]追加的字符串;功能:追加字符串到缓冲区当前行尾。注意此命令可以使用简写命令“a”。【例】假设当前执行命令为:SELECT*FROMtab;SQLaorderbytname;a命令后面跟两个空格。结果为:SQLSELECT*FROMtabORDERBYtname;二SQL*Plus命令(3)行编辑命令3.CHANGE命令格式:C[HANGE]/OLD/NEW;功能:在当前行用新的文本替换旧的文本。注意此命令可以使用简写命令“c”。【例】用tname替代当前行的“*”。SQLc/*/tname;结果为:SQLSELECTtnameFROMtabORDERBYTname;【例】从当前行删除指定文本tab。SQLc/tab结果为:SELECTtnameFROMORDERBYtname;二SQL*Plus命令(3)行编辑命令4.del命令格式:SQLDEL功能:删除当前行。SQLDELn功能:删除第n行。二SQL*Plus命令(3)行编辑命令5.INPUT命令格式:[I]N