使用 SQL*Plus

SQL*Plus是Oracle提供的一个工具程序。

1、启动SQL*Plus

Oracle不仅提供了命令行和图形界面的SQL*Plus,而且还可以在Web浏览器中运行。

● 在命令行运行SQL*Plus
使用sqlplus命令来完成,该命令适用于任何操作系统平台。
语法:sqlplus [username]/[password] [@server],username指定数据库用户名,password用于指定用户口令,server用于指定主机字符串(网络服务名),当连接到本地数据库时,不需要提供网络服务名,连接远程数据库必须要使用网络服务名。

● 在Windows环境中运行SQL*Plus
在Windows环境中安装了Oracle数据库产品,那么可以在窗口环境中运行SQL*Plus。
QQ截图20120816232559

● iSQL*Plus
iSQL*Plus是Oracle 9i的新特性,它是SQl*Plus在浏览器中的实现方式。在Oracle 9i中为了在浏览器中运行iSQL*Plus,必须首先在Oracle Server端启动HTTP Server;而在Oracle 10g中,为了在浏览器中运行iSQL*Plus,必须首先在Oracle Server端使用“isqlplusctl start”命令启动iSQL*Plus应用服务器,然后才能在客户端使用浏览器连接到iSQL*Plus。以普通用户登陆到iSQL*Plus,在浏览器中输入“http://主机名:端口号/isqlplus“,Oracle 10g默认端口号为5560.

2、连接命令

在连接到数据库之后,使用CONNECT命令可以切换连接;使用DISCONNECT命令可以断开连接。

⑴ CONN[ECT]
该命令用于连接到数据库,使用该命令建立新会话时,会自动断开先前会话。
QQ截图20120816233347
执行上述连接命令后,会以SYS用户建立新会话,其中orcl为网络服务名。当连接到远程数据库时,网络服务名是必须的。当以特权用户身份连接时,必须要带有AS SYSDBA或AS SYSOPER选项。

⑵ DISC[ONNECT]
该命令用于断开已存在的数据库连接,注意该命令只是断开连接会话,而不会退出SQL*Plus。
QQ截图20120816233920

⑶ PASSW[ORD]
该命令用户修改用户的口令。任何用户都可以使用该命令修改其自身口令。但如果修改其它用户的口令,则必须以DBA身份(SYS和SYSTEM)登陆。以修改SCOTT用户口令为例:
QQ截图20120816234636

⑷ EXIT
该命令用于退出SQL*Plus,也可以使用QUIT命令退出。注意,默认情况下,当执行该命令时会自动提交事务。

3、编辑命令

在SQL*Plus中执行SQL语句时,Oracle会将SQL语句暂时存放到SQL缓冲区。例如当执行“SELECT * FROM emp”时,该语句会暂时存放到SQL缓冲区,当执行新的SQL语句时,会自动清除先前SQL缓冲区的内容,并将新语句放到SQL缓冲区中。使用SQL*Plus所提供的编辑命令可以显示、编辑和修改SQL缓冲区的内容。

⑴ L[IST]
该命令用于列出缓冲区的内容。使用该命令可以列出SQL缓冲区某行、某几行或全部行的内容。在显示结果中,数字为具体的行号,而“*”则表示当前行。
QQ截图20120817000405

⑵ A[PPEND]
该命令用于在SQL缓冲区的当前行尾部添加内容。也就是将内容追到到标记为“*”的行尾部。
QQ截图20120817001140

⑶ C[HANGE]
该命令用于修改SQL缓冲区的内容。如果在编写SQL语句时写错了某个词可以使用此命令进行修改。
QQ截图20120817001704

⑷ DEL
该命令用于删除SQL缓冲区中内容,使用它可以删除某行、某几行或所有行。默认情况下,当直接执行DEL时,只删除当前行的内容。
QQ截图20120817002107

如要删除多行,指定起始和终止行号
QQ截图20120817002428

⑸ I[NPUT]
该命令用于在SQL缓冲区的当前行后新增加一行。
QQ截图20120817002931

如果要在首行前增加内容,则使用“0 文本”。
QQ截图20120817003336

⑹ N
该数值用于定位SQL缓冲区的当前行。
QQ截图20120817003827

⑺ ED[IT]
该命令用于编辑SQL缓冲区的内容。当运行该命令时,在Windows平台中会自动启动记事本,以编辑SQL缓冲区内容。
QQ截图20120817004259

⑻ RUN和/
RUN和/命令都可以用于运行SQL缓冲区中的SQL语句,使用RUN命令时,还会列出SQL缓冲区内容。
QQ截图20120817004726

4、文件操纵命令

对于需要经常使用键盘输入执行的某些命令,可以保存到一个SQL脚本文件中。通过使用脚本,一方面可以降低命令输入量,另一方面可以避免输入错误。有如下一些常用的操纵SQL脚本的命令:

⑴ SAVE
该命令用于将当前SQL缓冲区中的内容保存到SQL脚本中。执行该命令时,默认选项为CREATE,即建立新文件。
QQ截图20120817134258

执行上述命令后就会在F盘下创建query.sql新脚本文件,并将SQL缓冲区内容放到该脚本文件中。如果SQL脚本文件已经存在,使用REPLACE选项替换存在的脚本文件。
QQ截图20120817134834

如果不想覆盖已存在SQL脚本内容,而是在后面追加内容,则使用APPEND选项。
QQ截图20120817135446

⑵ GET
与SAVE命令作用相反,用于将SQL脚本中的所有内容装载到SQL缓冲区中。
QQ截图20120817140148

⑶ START和@
START和@命令用于运行SQL脚本文件。注意“/”。
QQ截图20120817140853

⑷ EDIT
编辑SQL脚本文件。
QQ截图20120817141416

⑸ SPOOL
该命令用于将SQL*Plus屏幕内容存放到SQL脚本中。
QQ截图20120817142022

5、格式命令

⑴ COL[UMN]
该命令用于控制列的显示格式。该命令包含有四个选项:CLEAR选项用于清除已定义列的显示格式;HEADING选项用于指定列的显示标题;JUSTIFY选项用于知道列标题的对齐格式(LEFT、CENTER、RIGHT);FORMAT选项用于指定列的显示格式。格式模型包含一下一些元素:
    ● An:设置CHAR、VARCHAR2类型列的显示宽度
    ● 9:在NUMBER类型列上禁止显示前导0
    ● 0:在NUMBER类型列上强制显示前导0
    ● $:在NUMBER类型列前显示美元符号
    ● L:在NUMBER类型列前显示本地货币符合
    ● .:指定NUMBER类型列的小数点位置
    ● ,:指定NUMBER类型列的千分隔符

QQ截图20120817155947

使用COL命令的CLEAR选项清除列显示格式:
QQ截图20120817160119

⑵ TTITLE
该命令用于知道页标题,页标题会自动显示在页的中央。如果页标题由多个词组成,则用单引号引住,否则不会以空格隔开。可以使用“TTITLE OFF”命令禁止显示页标题。
QQ截图20120817161321

⑶ BTITLE
该命令用于指定页脚注,页脚注会自动显示在页的中央。如果页脚注由多个词组成,则用单引号引住,否则不会以空格隔开。可以使用“BTITLE OFF”命令禁止显示页脚注。
QQ截图20120817162209

⑷ BREAK
该命令用于禁止显示重复行,并将显示结果分隔为几个部分,通常应该在ORDER BY的排序列上使用该命令。
QQ截图20120817162918
skip n选项用于指定各个部分之间的分隔空行,n用于指定分隔的空行数目。

6、交互式命令
为了使得SQL脚本可以根据不同输入从而获得不同结果,需要在SQL脚本中包含交互式命令。使用交互式命令可以在SQL*Plus中定义变量,并且在运行SQL脚本时可以为这些变量动态输入数据。

⑴ &
引用替代变量时,必须要带有该标号。该替代变量只在当前语句中起作用。
QQ截图20120817165814

⑵ &&
该标号类似于&标号,但是&&标号所定义的变量会在当前SQL*Plus环境中一直生效。
QQ截图20120817170212

⑶ DEFINE
该命令用于定义类型为CHAR的替代变量。在当前SQL*Plus环境中起作用。使用该命令定义变量时,如果变量值包含空格或区分大小写,则用引号引住。另外,使用“DEFINE 变量名”可以检查变量是否已经定义。
QQ截图20120817170939
set verify off用于关闭原值和新值的输出。

⑷ ACCEPT
该命令可以用于定义CHAR、NUMBER和DATE类型的替代变量。当使用该命令定义替代变量时,还可以指定变量输入提示、变量输入格式、隐藏输入内容。
示例一:指定变量输入提示
QQ截图20120817171953

示例二:隐藏用户输入
QQ截图20120817172543
首先定义替代变量pwd,然后输入pwd的值(此处为tiger),在连接的时候&pwd便替换为tiger。

⑸ UNDEFINE
该命令用于清除替代变量的定义。
QQ截图20120817172956

⑹ PROMPT和PAUSE
PROMPT命令用于输出提示信息,PAUSE命令用于暂停脚本执行。
QQ截图20120817173718

⑺ VARIABLE
该命令用于在SQL*Plus中定义绑定变量。当引用绑定变量时,必须要在绑定变量前加冒号(:),当直接给绑定变量赋值时,需要使用EXECUTE命令。
QQ截图20120817174402

⑻ PRINT
该命令用于输出绑定变量结果
QQ截图20120817174601

7、显示和设置环境变量

使用SQL*Plus的环境变量可以控制其运行环境。

⑴ SHOW ALL   显示所有环境变量

⑵ ARRAYSIZE
该环境变量用于指定数组提取尺寸,其默认值为15。该值越大网络开销将会越低,当占用内存会增加。
QQ截图20120817175258

⑶ AUTOCOMMIT
该环境变量用于设置是否自动提交DML语句,默认值为OFF,当设置为ON时,每次执行DML语句会自动提交。
QQ截图20120817175802

设置为自动提交
QQ截图20120817180053

⑷ COLSEP
该环境变量用于设置列之间的分隔符,默认分隔符为空格。
QQ截图20120817180424

⑸ FEEDBACK
该环境变量用于指定显示反馈行数信息的最低行数,其默认值为6,当你的查询结果选择的行数低于6行时,不会显示反馈行数信息。只要有查询结果就希望返回行数(也就是显示已选择几行),则可以把FEEDBACK设置为1。
QQ截图20120817181120

⑹ HEADING
该环境变量用于设置是否显示列标题,其默认值为ON。如果不显示列标题则设置为OFF。
QQ截图20120817181735

⑺ LINESIZE
该环境变量用于设置行宽度,默认值为80。默认情况下如果数据长度超过80个字符,那么在SQL*Plus中会折行显示数据。
QQ截图20120817182508

⑻ LONG
该环境变量用于设置LONG和LOB类型列的显示长度。其默认值为80。也就是说当查询LONG或LOB列时,只会显示该列的前80个字符,要显示更多字符,应该设置更大的值。
QQ截图20120817183851

⑼ PAGESIZE
该环境变量用于设置每页所显示的行数,其默认值为14。

⑽ SERVEROUTPUT
该环境变量用于控制服务器输出,其默认值为OFF。表示禁止服务器输出。默认情况下在调用DBMS_OUTPUT包时,不会在SQL*Plus屏幕上显示输出结果。为了显示输出结果必须要将SERVEROUTPUT设置为ON。
QQ截图20120817185222

⑾ TERMOUT
该环境变量用于控制SQL脚本的输出,其默认值为ON,当使用默认值时,如果SQL脚本有输出结果,则会在屏幕上显示结果;如果设置为OFF,则不会显示。
QQ截图20120817185723

⑿ TIME
该环境变量用于设置在SQL提示符前是否显示系统时间,默认值为OFF,禁止显示系统时间,如果设置为ON,则显示系统时间。
QQ截图20120817194409

⒀ TIMING
该环境变量用于设置是否要显示SQL语句执行时间,默认为OFF,不会显示,如果设置为ON则会显示SQL语句执行时间。
QQ截图20120817194921

 

转载于:https://my.oschina.net/xiaomaoandhong/blog/73363

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值