SQL*Plus命令
概述:
SQL*Plus是一个被系统管理员(DBA)和开发人员广泛使用的功能强大而且很直观的Oracle工具,也是一个可以通用在各种平台上且操作几乎完全一致的工具。
SQL*Plus可以执行输入的SQL语句、包含SQL语句的文件和PL/SQL语句,通过SQL*Plus可以与数据库进行对话。
SQL*Plus与数据库的交互
SQL*Plus是与Oracle进行交互的客户端工具。
SQL*Plus是一个基于C/S两层结构的客户端操作工具,包括客户层(即命令行窗口)和服务器层(即数据库实例),这两层既可以在一台主机上,也可以在不同主机上。
注:除了Oracle自身提供的SQL*Plus工具以外,还有许多第三方的Oracle开发工具,如TOAD和PL/SQL Developer等,它们均具有与SQL*Plus同样的功能,甚至还具备了SQL*Plus不具备的许多新功能。
SQL*Plus工具主要用来进行数据查询和数据处理,SQL*Plus工具具备以下功能:
-
- 定义变量,编写SQL语句。
- 插入、修改、删除、查询,以及执行命令和PL/SQL语句。例如,执行SHOWPARAMETER命令。
- 格式化查询结构、运算处理、保存、打印机输出等。
- 显示任何一个表的字段定义,并实现与用户进行交互。
- 完成数据库的几乎所有管理工作。例如,维护表空间和数据表。
- 运行存储在数据库中的子程序或包。
- 以sysdba身份登录数据库实例,可以实现启动/停止数据库实例。
设置SQL*Plus的运行环境
SQL*Plus的运行环境是用来输入、执行SQL*Plus命令和显示返回结果的场所,设置合适的SQL*Plus运行环境,可以使SQL*Plus能够按照用户的要求运行和执行各种操作。
SET命令也称SET变量或维护系统变量,利用它可为SQL*Plus交互建立一个特殊的环境。例如,设置屏幕上每一行能够最多显示字符数、设置每页打印的行数、设置某个列的宽度等。
SET命令简介:
语法格式: SET system_variable value
sys_variable:变量名
value:变量值
举例:设置在SQL*Plus命令提示符“SQL>”前面显示当前的系统时间: set time on
显示的结果为:
注意:通过SET命令设置的环境变量是临时的,不是永久的。当用户退出SQL*Plus环境后,用户设置的环境参数会全部丢失。
SQL*Plus的常用变量名及设置:
1.SET PAGESIZE value
设置从顶部标题至页结束之间的行数,该值是一个整数,默认为14.
2.SET NEWPAGE value
设置一页中空行的数量,默认值为1.
3.SET LINESIZE value
设置在SQL*Plus环境中一行所显示的最多字符总数,默认值为80.
4.SET PAUSE value
设置SQL*Plus输出结果是否滚动显示,默认off,返回结果一次性输出完毕,中间的每一页不会暂停。
5.SET NUMFORMAT FORMAT
设置显示数值的默认格式,该格式是数值格式
常用SQL*Plus命令:
在SQL*Plus环境中操作Oracle数据库,除了使用SQL语句外,用户接触比较多的就是SQL*Plus命令,它执行完成后,不会保存在SQL缓冲区中。
1.HELP命令
帮助用户查询指定命令的选项,可以向用户提供被查询命令的标题、功能描述、缩写形式和参数选项(包括必选参数和可选参数)等信息。
语法形式:HELP|? [topic]
“?”表示一个命令的部分字符,这样就可以通过提供命令的部分字符以模糊查询的方式来查询命令格式。
topic参数表示将要查询的命令的完整名称。
若省略“?”和topic参数,直接执行HELP命令,则会输出HELP命令本身的语法格式及其功能描述信息。
2.DESCRIBE命令
DESCRIBE命令可能是被使用得最频繁的一个,它用来查询指定数据对象的组成结构,查询结果可以列出相应对象各个列的名称、是否为空及类型等属性。
语法形式:DESC[RIBE] object_name (DESCRIBE可以缩写为DESC)
object_name表示将要查询的对象名称.
3.SPOOL命令
把查询结果输出到指定文件中,这样可以保存查询结果并方便打印。
语法形式:SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
参数file_name用于指定脱机文件的名称,默认的文件扩展名为LST。
CRE[ATE]:表示创建一个新的脱机文件,这也是SPOOL命令的默认状态。
REP[LACE]:表示替代已经存在的脱机文件。
APP[END]:表示把脱机内容附加到一个已经存在的脱机文件中。
OFF | OUT:表示关闭SPOOL输出。
4.DEFINE命令
定义一个用户变量并且可以分配给它一个CHAR值.
语法形式:DEF[INE] [variable] | [variable = text]
variable:表示定义的变量名。
text:变量的CHAR值。
5.SHOW命令
显示SQL*Plus系统变量的值或SQL*Plus环境变量的值
语法形式:SHOW [option]
option表示要显示的系统选项,常用的选项有ALL、PARAMETERS[parameter_name]、SGA、SPOOL、USER等。
6.EDIT命令
编辑SQL缓冲区或指定磁盘文件中的SQL语句或PL/SQL块
语法形式:EDIT [file_name[.ext]]
7.SAVE命令
实现将SQL缓冲区中的最近一条SQL语句或PL/SQL块保存到一个文件中
语法形式:SAVE file_name
8.GET命令
实现把一个SQL脚本文件的内容放进SQL缓冲区
语法形式:GET [FILE] file_name[.ext] [LIST | NOLIST]
file_name:要检索的文件名,如果省略了文件的扩展名,则默认文件的扩展名为SQL。
LIST:指定文件的内容加载到缓冲区时显示文件的内容。
NOLIST:指定文件的内容加载到缓冲区时不显示文件的内容。
9.START和@命令
这两个命令都可以用来执行一个SQL脚本文件
语法形式:STA[RT] {url | file_name[.ext]} [arg...]
@{url | file_name[.ext]} [arg...]
url:表示要执行的SQL脚本文件的路径。
file_name:表示包含SQL脚本的文件名。
arg:其他参数。
格式化查询结果:
为了在SQL*Plus环境中生成符合用户需要规范的报表,SQL*Plus工具提供了多个用于格式化查询结果的命令。
使用这些命令可以实现设置列的标题、定义输出值的显示格式和显示宽度、为报表增加头标题和底标题、在报表中显示当前日期和页号等功能。
1.COLUMN命令
实现格式化查询结果、设置列宽度、重新设置列标题等功能。
语法形式:COL[UMN] [column | alias | option]
column_name:用于指定要设置的列的名称。
alias:用于指定列的别名,通过它可以把英文列标题设置为汉字。
option:用于指定某个列的显示格式,option选项的值及其说明如下表所示。
2.TTITLE和BTITLE命令
在SQL*Plus环境中,执行SQL语句后的显示结果在默认情况下包括列标题、页分割线、查询结果和行数合计等内容,用这些默认的输出信息打印报表,并不十分美观。
为整个输出结果设置报表头、为每页都设置页标题和页码、为整个输出结果设置报表尾,由此加入这两个命令分别用来设置打印时每页的顶部和底部标题。
语法形式:TTI[TLE] [printspec [text | variable]...] | [OFF | ON]
-
-
- printspec:用来作为头标题的修饰性选项。
- text:用于设置输出结果的头标题(即报表头文字)。
- variable:用于在头标题中输出相应的变量值。
- OFF:表示禁止打印头标题。
- ON:表示允许打印头标题。
-