资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第3章,使,使用SQL*Plus,工,工具,本章要点:,了解,SQL*Plus,工具的功能,。,。,掌握,SQL*Plus,连接与断开,数,数据库的多,种,种方式。,熟练掌握,DESCRIBE,命令的使用,。,。,熟练掌握各,种,种编辑命令,。,。,掌握临时变,量,量和已定义,变,变量的使用,。,。,掌握格式化,查,查询结果的,设,设置。,掌握简单报,表,表的创建。,2,3.1SQL*Plus概述,本节将对,SQL*Plus,工具的主要,功,功能进行简,单,单的介绍,,另,另外介绍如,何,何使用,SQL*Plus,连接和断开,数,数据库。,3,3.1.1SQL*Plus,的,的主要功能,SQL*Plus工具,主,主要用于数,据,据查询和数,据,据处理。利,用,用SQL*Plus可,以,以将SQL,与,与Oracle专有的PL/SQL结合起来,进,进行数据查,询,询和处理。,SQL*Plus工具具备以下,功,功能:,对数据表可以执,行,行插入、修改、,删,删除、查询操作,,,,以及执行SQL、PL/SQL块。,查询结果的格式,化,化、运算处理、,保,保存、打印以及,输,输出Web格式,。,。,显示任何一个表,的,的字段定义,并,与,与终端用户交互,。,。,连接数据库,定,义,义变量。,完成数据库管理,。,。,运行存储在数据,库,库中的子程序或,包,包。,启动/停止数据,库,库实例。,4,3.1.2SQL*Plus连接与断开数,据,据库,1启动SQL*Plus,连,接,接到默认数据库,(1)执行“,开,开始”“程序,”,”“Oracle OraDb11g_home1”,“,“应用程序开发,”,”“SQLPlus”命令,,,,打开SQLPlus窗口,,显,显示登录界面。,(2)在登录,界,界面中将提示输,入,入用户名,根据,提,提示输入相应的,用,用户名和口令(,例,例如system和admin)后按Enter键,SQL*Plus将连接,到,到默认数据库。,(3)连接到,数,数据库之后,显,示,示SQL提示,符,符,可以输入相,应,应的SQL命令,。,。例如执行SELECT name FROMV$DATABASE语句,,查,查看当前数据库,名,名称。如图3-1所示。,5,3.1.2SQL*Plus连接与断开数,据,据库,2从命令行连,接,接数据库,要从命令行启动SQL*Plus,可以使用sqlplus命,令,令。sqlplus命令的一般,使,使用形式如下:,sqlplus user_name/password connect_identifier,AS SYSOPER|SYSDBA|SYSASM|/NOLOG,下面以,system,用户连接数据库,,,,在,DOS,窗口中输入,sqlplussystem/adminorcl,命令,按,Enter,键后提示连接到,orcl,数据库,如图,3-2,所示。,6,3.1.2SQL*Plus连接与断开数,据,据库,3,使用,SQL*Plus,命令连接与断开,数,数据库,在,SQL*Plus,中连接数据库时,,,,可以使用,CONNECT,命令指定不同的,登,登录用户,连接,数,数据库后,SQL*Plus维,持,持数据库会话。,CONNECT,命,命令的一般语法,形,形式如下:,CONNECT user_name /password connect_identifier ,AS SYSOPER|SYSDBA|SYSASM ,7,3.2 使用SQL*Plus命令,Oracle的SQL*Plus是与Oracle进行交互的,客,客户端工具。,在SQL*Plus中,,可以运行SQL*Plus命,令,令和SQL*Plus语句。,执行这些语句后,,,,都可以保存在,一,一个被称为SQL BUFFER的内存区域中,,,,但是只能保存,一,一条最近执行的SQL语句。,除了,SQL*Plus,语句,在,SQL*Plus,中执行的其他语,句,句称之为,SQL*Plus,命令。,SQL*Plus,命令执行后,不,保,保存在SQLBUFFER内,存,存区域中,一般,用,用来对输出的结,果,果进行格式化显,示,示,以便于制作,报,报表。,8,3.2.1,使,使用DESCRIBE命令查看,表,表结构,DESCRIBE命令可以返回,数,数据库中所存储,的,的对象的描述。,对,对于表和视图等,对,对象来说,DESCRIBE命,令,令可以列出各个,列,列以及各个列的,属,属性,除此之外,,,,该命令还可以,输,输出过程、函数,和,和程序包的规范,。,。DESCRIBE命令的语法,如,如下:,DESCRIBE schema.object connect_identifier,使用DESCRIBE命令查看,表,表的结构时,如,果,果存在指定的表,,,,则显示该表的,结,结构。在显示表,结,结构时,将按照,“,“名称”、“是,否,否为空?”和“,类,类型”这3列进,行,行显示。其中,名称:表示列的,名,名称。,是否为空?:表,示,示对应列的值是,否,否可以为空。如,果,果不可以为空,,则,则显示NOTNULL;否则,不,不显示任何内容,。,。,类型:表示列的,数,数据类型,并且,显,显示其精度。,9,3.2.2,使,使用SQL*Plus语句快速,编,编辑SQL,语句,Oracle,数,数据库提供了,一,一些SQL*Plus语句,,,,这些语句由,相,相应的命令来,实,实现,例如APPEND(,可,可以简写为A)命令,如表3-3所示。,命,令,说,明,APPEND text,将text附加到当前行之后,CHANGE/old/new,将当前行中的old替换为new,CHANGE/text/,删除当前行中指定的text文本,CLEAR BUFFER,清除缓存区中的所有行,INPUT,插入不定数量的命令行,INPUT text,插入指定的文本text,DEL,删除当前行,DEL n,删除第n行(行号从1开始),DEL m n,删除从第m行到第n行之间的命令行,LIST,列出缓冲区中所有的行,LIST n,列出第n行,RUN或/,显示缓冲区中保存的语句,并运行这些语句,n,将第n行作为当前行,n text,使用text文本替代第n行信息,0 text,在第一行之前插入text文本,10,3.2.3,使用SAVE,命,命令将缓冲区,内,内容保存到文,件,件,使用SAVE,命,命令可以将当,前,前缓冲区的内,容,容保存到文件,中,中,这样,即,使,使缓冲区中的,内,内容被覆盖,,也,也保留有前面,的,的执行语句。SAVE命令,的,的语法如下所,示,示:,SAVE FILE file_name CREATE|REPLACE|APPEND,语法说明如下,。,。,file_name:表示,将,将SQL*Plus缓冲区,的,的内容保存到,由,由file_name指定,的,的文件中。,CREATE,:,:表示创建一,个,个file_name文件,,,,并将缓冲区,中,中的内容保存,到,到该文件。该,选,选项为默认值,。,。,APPEND,:,:如果file_name,文,文件已经存在,,,,则将缓冲区,中,中的内容追加,到,到file_name文件,的,的内容之后;,如,如果该文件不,存,存在,则创建,该,该文件。,REPLACE:如果file_name文件已经存,在,在,则覆盖file_name文件的内,容,容;如果该文,件,件不存在,则,创,创建该文件。,11,3.2.4,使,使用GET,命,命令读取文件,内,内容到缓冲区,使用GET命,令,令的语法如下,:,:,GET FILE file_name LIST|NOLIST,语法说明如下,。,。,file_name:表示,一,一个指定文件,,,,将该文件的,内,内容读入SQL*Plus,缓,缓冲区中。,LIST:列,出,出缓冲区中的,语,语句。,NOLIST,:,:不列出缓冲,区,区中的语句。,【例3.5】,将scott_emp_query.sql文件的内,容,容读入到缓冲,区,区中,并且输,出,出和显示这些,内,内容,如下:,SQL GET scott_emp_query.sql LIST,1 SELECT empno,job,mgr,sal,deptno,2 FROM scott.emp,3*where empno 7800,将文件的内容,读,读入到缓冲区,后,后,就可以使,用,用编辑命令对,这,这些内容进行,操,操作了。,12,3.2.5,使用START命令读取并,运,运行文件内容,START命,令,令可以读取文,件,件中的内容到,缓,缓冲区中,然,后,后在SQL*Plus中运,行,行这些内容。START命,令,令的语法如下,:,:,START url|file_name,语法说明如下,。,。,url,:用来指定一,个,个,URL,地址,例如,http:/host.domain/script.sql,。,file_name,:指定一个文,件,件。该命令将,file_name,文件的内容读,入,入,SQL*Plus,缓冲区中,然,后,后运行缓冲区,中,中的内容。,13,3.2.5,使用START命,令,令读,取,取并,运,运行,文,文件,内,内容,【例,3.6】,使用,START,命令读取并,运,运行,scott_emp_query.sql,文件,如下,:,:,SQLSTARTscott_emp_query.sql,EMPNOJOBMGRSALDEPTNO,-,7839PRESIDENT500010,7844SALESMAN7698150030,7876CLERK7788110020,7900CLERK769895030,7902ANALYST7566300020,7934CLERK7782130010,已选择6行,。,。,上述输出结,果,果表示执行START,命,命令后,运,行,行了保存在scott_emp_query.sql文,件,件之中的内,容,容。,14,3.2.6,使,使用EDIT命令,编,编辑缓冲区,内,内容或文件,内,内容,使用EDIT命令,可,以,以将SQL*Plus,缓,缓冲区的内,容,容复制到一,个,个名为afiedt.buf的文,件,件中,然后,启,启动操作系,统,统中默认的,编,编辑器打开,这,这个文件,,并,并且对于文,件,件内容能够,进,进行编辑。,在,在Windows操作,系,系统中,默,认,认的编辑器,是,是Notepad(记,事,事本)。语,法,法形式如下,:,:,EDIT file_name,其中,file_name默认为afiedt.buf,,,,也可以指,定,定一个其他,的,的文件。,15,3.2.6,使,使用EDIT命令,编,编辑缓冲区,内,内容或文件,内,内容,【例3.7,】,】,在SQL*Plus中,执,执行EDIT命令,如,下,下:,SQLEDIT,已写入 file afiedt.buf,这时,将打,开,开一个记事,本,本文件afiedt.buf,在,该,该文件中显,示,示缓冲区中,的,的内容,文,件,件的内容以,斜,斜杠(/),结,结束,如图3-4所示,。,。,16,3.2.7 使,用,用SPOOL命令,复,复制输出,结,结果到文,件,件,使用SPOOL命,令,令实现将SQL*Plus,中,中的输出,结,结果复制,到,到一个指,定,定的文件,中,中,或者,把,把查询结,果,果发送到,打,打印机中,,,,直到使,用,用SPOOL OFF命令,为,为止。SPOOL,命,命令的语,法,法如下:,SPOOL file_name CREATE|REPLACE|APPEND|OFF|OUT,语法说明,如,如下。,file_name:指定,一,一个操作,系,系统文件,。,。,CREATE:创,建,建一个指,定,定的file_name文,件,件。,REPLACE:
展开阅读全文