Oracle数据库应用培训--使用SQL.zipPlus工具_第1页
Oracle数据库应用培训--使用SQL.zipPlus工具_第2页
Oracle数据库应用培训--使用SQL.zipPlus工具_第3页
Oracle数据库应用培训--使用SQL.zipPlus工具_第4页
Oracle数据库应用培训--使用SQL.zipPlus工具_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2,第3章使用SQL*Plus工具,本章要点:了解SQL*Plus工具的功能。掌握SQL*Plus连接与断开数据库的多种方式。熟练掌握DESCRIBE命令的使用。熟练掌握各种编辑命令。掌握临时变量和已定义变量的使用。掌握格式化查询结果的设置。掌握简单报表的创建。,3,3.1SQL*Plus概述,本节将对SQL*Plus工具的主要功能进行简单的介绍,另外介绍如何使用SQL*Plus连接和断开数据库。,4,3.1.1SQL*Plus的主要功能,SQL*Plus工具主要用于数据查询和数据处理。利用SQL*Plus可以将SQL与Oracle专有的PL/SQL结合起来进行数据查询和处理。SQL*Plus工具具备以下功能:对数据表可以执行插入、修改、删除、查询操作,以及执行SQL、PL/SQL块。查询结果的格式化、运算处理、保存、打印以及输出Web格式。显示任何一个表的字段定义,并与终端用户交互。连接数据库,定义变量。完成数据库管理。运行存储在数据库中的子程序或包。启动/停止数据库实例。,5,3.1.2SQL*Plus连接与断开数据库,1启动SQL*Plus,连接到默认数据库(1)执行“开始”“程序”“OracleOraDb11g_home1”“应用程序开发”“SQLPlus”命令,打开SQLPlus窗口,显示登录界面。(2)在登录界面中将提示输入用户名,根据提示输入相应的用户名和口令(例如system和admin)后按Enter键,SQL*Plus将连接到默认数据库。(3)连接到数据库之后,显示SQL提示符,可以输入相应的SQL命令。例如执行SELECTnameFROMV$DATABASE语句,查看当前数据库名称。如图3-1所示。,6,3.1.2SQL*Plus连接与断开数据库,2从命令行连接数据库要从命令行启动SQL*Plus,可以使用sqlplus命令。sqlplus命令的一般使用形式如下:sqlplususer_name/passwordconnect_identifierASSYSOPER|SYSDBA|SYSASM|/NOLOG下面以system用户连接数据库,在DOS窗口中输入sqlplussystem/adminorcl命令,按Enter键后提示连接到orcl数据库,如图3-2所示。,7,3.1.2SQL*Plus连接与断开数据库,3使用SQL*Plus命令连接与断开数据库在SQL*Plus中连接数据库时,可以使用CONNECT命令指定不同的登录用户,连接数据库后,SQL*Plus维持数据库会话。CONNECT命令的一般语法形式如下:CONNECTuser_name/passwordconnect_identifierASSYSOPER|SYSDBA|SYSASM,8,3.2使用SQL*Plus命令,Oracle的SQL*Plus是与Oracle进行交互的客户端工具。在SQL*Plus中,可以运行SQL*Plus命令和SQL*Plus语句。执行这些语句后,都可以保存在一个被称为SQLBUFFER的内存区域中,但是只能保存一条最近执行的SQL语句。除了SQL*Plus语句,在SQL*Plus中执行的其他语句称之为SQL*Plus命令。SQL*Plus命令执行后,不保存在SQLBUFFER内存区域中,一般用来对输出的结果进行格式化显示,以便于制作报表。,9,3.2.1使用DESCRIBE命令查看表结构,DESCRIBE命令可以返回数据库中所存储的对象的描述。对于表和视图等对象来说,DESCRIBE命令可以列出各个列以及各个列的属性,除此之外,该命令还可以输出过程、函数和程序包的规范。DESCRIBE命令的语法如下:DESCRIBEschema.objectconnect_identifier使用DESCRIBE命令查看表的结构时,如果存在指定的表,则显示该表的结构。在显示表结构时,将按照“名称”、“是否为空?”和“类型”这3列进行显示。其中名称:表示列的名称。是否为空?:表示对应列的值是否可以为空。如果不可以为空,则显示NOTNULL;否则不显示任何内容。类型:表示列的数据类型,并且显示其精度。,10,3.2.2使用SQL*Plus语句快速编辑SQL语句,Oracle数据库提供了一些SQL*Plus语句,这些语句由相应的命令来实现,例如APPEND(可以简写为A)命令,如表3-3所示。,11,3.2.3使用SAVE命令将缓冲区内容保存到文件,使用SAVE命令可以将当前缓冲区的内容保存到文件中,这样,即使缓冲区中的内容被覆盖,也保留有前面的执行语句。SAVE命令的语法如下所示:SAVEFILEfile_nameCREATE|REPLACE|APPEND语法说明如下。file_name:表示将SQL*Plus缓冲区的内容保存到由file_name指定的文件中。CREATE:表示创建一个file_name文件,并将缓冲区中的内容保存到该文件。该选项为默认值。APPEND:如果file_name文件已经存在,则将缓冲区中的内容追加到file_name文件的内容之后;如果该文件不存在,则创建该文件。REPLACE:如果file_name文件已经存在,则覆盖file_name文件的内容;如果该文件不存在,则创建该文件。,12,3.2.4使用GET命令读取文件内容到缓冲区,使用GET命令的语法如下:GETFILEfile_nameLIST|NOLIST语法说明如下。file_name:表示一个指定文件,将该文件的内容读入SQL*Plus缓冲区中。LIST:列出缓冲区中的语句。NOLIST:不列出缓冲区中的语句。【例3.5】将scott_emp_query.sql文件的内容读入到缓冲区中,并且输出和显示这些内容,如下:SQLGETscott_emp_query.sqlLIST1SELECTempno,job,mgr,sal,deptno2FROMscott.emp3*whereempno7800将文件的内容读入到缓冲区后,就可以使用编辑命令对这些内容进行操作了。,13,3.2.5使用START命令读取并运行文件内容,START命令可以读取文件中的内容到缓冲区中,然后在SQL*Plus中运行这些内容。START命令的语法如下:STARTurl|file_name语法说明如下。url:用来指定一个URL地址,例如http:/host.domain/script.sql。file_name:指定一个文件。该命令将file_name文件的内容读入SQL*Plus缓冲区中,然后运行缓冲区中的内容。,14,3.2.5使用START命令读取并运行文件内容,【例3.6】使用START命令读取并运行scott_emp_query.sql文件,如下:SQLSTARTscott_emp_query.sqlEMPNOJOBMGRSALDEPTNO-7839PRESIDENT5000107844SALESMAN76981500307876CLERK77881100207900CLERK7698950307902ANALYST75663000207934CLERK7782130010已选择6行。上述输出结果表示执行START命令后,运行了保存在scott_emp_query.sql文件之中的内容。,15,3.2.6使用EDIT命令编辑缓冲区内容或文件内容,使用EDIT命令,可以将SQL*Plus缓冲区的内容复制到一个名为afiedt.buf的文件中,然后启动操作系统中默认的编辑器打开这个文件,并且对于文件内容能够进行编辑。在Windows操作系统中,默认的编辑器是Notepad(记事本)。语法形式如下:EDITfile_name其中,file_name默认为afiedt.buf,也可以指定一个其他的文件。,16,3.2.6使用EDIT命令编辑缓冲区内容或文件内容,【例3.7】在SQL*Plus中执行EDIT命令,如下:SQLEDIT已写入fileafiedt.buf这时,将打开一个记事本文件afiedt.buf,在该文件中显示缓冲区中的内容,文件的内容以斜杠(/)结束,如图3-4所示。,17,3.2.7使用SPOOL命令复制输出结果到文件,使用SPOOL命令实现将SQL*Plus中的输出结果复制到一个指定的文件中,或者把查询结果发送到打印机中,直到使用SPOOLOFF命令为止。SPOOL命令的语法如下:SPOOLfile_nameCREATE|REPLACE|APPEND|OFF|OUT语法说明如下。file_name:指定一个操作系统文件。CREATE:创建一个指定的file_name文件。REPLACE:如果指定的文件已经存在,则替换该文件。APPEND:将内容附加到一个已经存在的文件中。OFF:停止将SQL*Plus中的输出结果复制到file_name文件中,并关闭该文件。OUT:启动该功能,将SQL*Plus中的输出结果复制到file_name指定的文件中。,18,3.2.8使用临时变量,在Oracle数据库中,可以使用变量来编写通用的SQL语句,在运行SQL语句时,为变量输入值,就会在SQL语句中将变量替换成这些值。1使用&符号表示临时变量在SQL语句中,如果在某个变量前面使用了&符号,那么就表示该变量是一个临时变量。执行SQL语句时,系统会提示用户为该变量提供一个具体的数据。2使用&符号表示临时变量在SQL语句中,如果希望重新使用某个变量并且不希望重新提示输入值,那么可以使用&符号来定义临时变量。,19,3.2.8使用临时变量,3使用SETVERIFY和SETDEFINE命令在使用临时变量时,还可以使用SETVERIFY命令和SETDEFINE命令,其中SETVERIFYON|OFF:用来指定是否输出原值和新值信息。SETDEFINE:用于指定一个除字符&之外的字符,作为定义变量的字符。4在脚本文件中使用临时变量在创建的脚本文件中也可以使用临时变量。在运行该脚本文件时,需要为临时变量传递相应的变量值。,20,3.2.9使用已定义变量,1使用DEFINE命令DEFINE命令用来创建一个数据类型为CHAR的变量,该命令的语法形式如表3-4所示。,21,3.2.9使用已定义变量,2使用ACCEPT命令使用ACCEPT命令也可以定义变量,并且定制一个用户提示,用于提示用户输入指定变量的数据。ACCEPT命令的语法如下:ACCEPTvariabledata_typeFORMATformatDEFAULTdefaultPROMPTtext|NOPROMPTHIDE,22,3.3格式化查询结果,SQL*Plus提供了大量用来格式化结构集的命令。这些命令包括COLUMN、PAGESIZE、LINESIZE、TTITLE和BTITLE等。在使用格式化命令时,应该遵循下面一些规则:格式化命令设置之后,该命令一直起作用,直到会话结束或者下一个格式化命令的设置。每一次报表结束后,重新设置SQL*Plus默认值。如果为某个列指定了别名,那么必须引用该别名,而不能使用列名。,23,3.3.1格式化列的显示效果,COLUMN命令可对列的显示效果(包括列标题和列数据)进行格式化。命令语法如下:COLUMNcolumn_name|ALIASaliasoptions语法说明如下。column_name:指定列名。ALIASalias:指定要格式化的列的别名。Options:指定用于格式化列或别名的一个或者多个选项。,24,3.3.2设置一页显示多少行数据,使用PAGESIZE命令,可以设置每一页的大小,从而控制每一页显示的数据量。PAGESIZE命令的语法如下:SETPAGESIZEn其中,参数n表示每一页大小的正整数,最大值可以为50000,默认值为14。【例3.19】使用PAGESIZE命令,设置一页显示20行信息。然后再执行前面的SELECT语句,如下:SQLSETPAGESIZE20SQL/员工编号员工姓名上级编号受雇日期员工工资-7369SMITH790217-12月-80$800.007499ALLEN769820-2月-81$1,600.00.7902FORD756603-12月-81$3,000.007934MILLER778223-1月-82$1,300.00已选择14行。从输出结果可以看出,所有的数据在一页内进行显示。,25,3.3.3设置一行显示多少个字符,使用LINESIZE命令可以设置一行数据可以容纳的字符数量,默认数量为80。如果LINESIZE的值比较小,那么表中一行数据,有可能在屏幕上需要分多行显示;如果LINESIZE的值设置大一些,一行数据就可以在屏幕的一行中进行显示了。LINESIZE命令的语法如下:SETLINESIZEn其中,n表示屏幕上一行数据可以容纳的字符数量,有效范围是132767。,26,3.3.3设置一行显示多少个字符,【例3.20】对scott用户的表emp执行查询操作时,使用LINESIZE命令之前和之后的输出结果如图3-6所示。从图3-6的输出结果可以看出,执行SELECT语句后的输出结果中,应该一行显示的数据分成两行进行显示。,27,3.3.4创建简单报表,1为报表设置页眉和页脚使用TTITLE和BTITLE命令,分别为报表设置页眉和页脚信息。这两个命令的使用方法如表3-7所示。,28,3.3.4创建简单报表,【例3.21】查询scott用户的emp表时,使用TTITLE和BTITLE命令设置页眉和页脚信息。由于需要使用PAGESIZE和LINESIZE等多条命令设置输出格式,所以,将所有的设置命令定义在一个文本文件report.sql中,如图3-7所示。,29,3.3.4创建简单报表,2计算小计BRENK和COMPUTE的一般用法如下:BREAKONcolumn_nameSKIPnCOMPUTEfunctionLABELl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论