Oracle 的 Sql*Plus 常用命令介绍

估计用 Oracle 的几乎一开始都是使用 Sql*Plus 吧,

毕竟这个工具可以运行在任何的 Oracle 运行的平台上,

这个工具呢,您可以在客户端实现安装,也可以在服务端安装,

在客户端的安装呢,主要是通过安装 Oracle 提供的客户端软件安装,

而在服务端的话,则是通过安装 Oracle 时自动安装的,

Sql*Plus 呢,其是一个基于 C/S 的 Sql 开发工具,包括客户层和服务层,

其可以实现执行 Sql 语句或者是执行含有 Sql 语句的文件,

同时,其也能够执行 PL/Sql 语句,所以说是非常的方便啊,

这一篇博文呢,我将会介绍一些关于 Sql*Plus 常用的命令,

注意是常用的命令,而非那些并不是很常用的又比较钻牛角尖的命令!!!

其中有一些命令也还是很实用的!!!

1. 连接 Oracle 命令

    您可以在 DOS 窗口下运行 SqlPlus 命令或者是 SqlPlus/nolog 等等诸如的命令,

    但是需要明白的是,这里呢,您要想直接在 DOS 下运行上面的命令,还必须设置好环境变量,

    因为实质上,您运行的这条命令所在路径是

   D:\app\XiaoZhen\product\11.1.0\db_1\BIN 下的 SqlPlus.exe

    (该路径可能随机器的安装路径不同而不同)

image

2. 登陆 Oracle 命令

    使用 connect 用户名/密码 ,或者是直接运行 connect (connect 命令是可以缩写为 conn 的),

    如果是直接使用 connect 命令的话,则会在后续的运行中提示输入用户名和密码,

    直接运行 connect 命令呢,有一大好处,就是您输入的密码会自动隐藏,不让用户看见,

    比如下面的例子中口令行就被隐藏了

image

3. “ /“命令

    这里需要提及一个东西,就是当运行 Sql*Plus 时, Oracle 会在在缓冲区中保留最后的执行命令,

    而针对这个缓冲区中的保存的命令,可以使用符号 “/”来快速访问,

    即可以使用 “/”命令来再次运行您最后执行的命令

image   

4. Sql*Plus 行编辑之 List 命令

    这里呢,也还是需要提一下,就是 Sql*Plus 呢提供了一个行编辑的功能,   

    这个功能呢主要是针对快速修改 Sql 缓冲区中的 Sql 语句,并且再次用来执行。

    需要注意的是,由于缓冲区中只保存了您执行的最后一条 Sql 语句,

    而行编辑就是针对这一条语句来说的,因为这一条 Sql 语句可能有 n 行,

    List 命令呢,总共有三种形式,及 List --列出缓冲区中所有的行,

    List n --列出缓冲区中的第 n 行,List * --列出当前行,

    然后呢,您需要注意的是哪一行才是当前行,当前行呢,在使用 List 列出后,

    会在其前面有一个 * 标志,当前行会随着您的选择而变化。

    下面的例子中 Sql 语句总共有三行,您可以注意 * 的变化

image

5. Sql*Plus 行编辑之 Del 命令

    这个 Del 命令呢,就是用来删除缓冲区中储存的 Sql 语句的指定的行的。

    形式呢,也可想而知,有三种,

    即 Del --删除所有行,Del n --删除指定行,Del * --删除当前行

image

6. Sql*Plus 行编辑之 Input 命令

    前面呢,介绍了行编辑的查看和删除,那么这里就要介绍如何往缓冲区中的行里头添加新的行,

    这里就是使用 Input 命令来实现的,详细的请看下面的演示过程

image

7. Sql*Plus 行编辑之 Change 命令

    这个 Change 命令的作用就是将 Sql 缓冲区中的某行进行修改

image

8. 清空 Sql 缓冲区命令

    Clear Buffer,作用的话自然是将 Sql 缓冲区中的所有行进行删除,即清除缓冲区

image

9. 定义 Sql 编辑器命令

    define_editor

    各位呢,估计也是体会到了在 Sql*Plus 这个黑框框中输入 Sql 语句时的麻烦,

    但是呢,下面介绍的是您自己可以自定义一个编辑器来编辑 Sql 语句,

    下面的例子是先定义您的编辑器,我定义的是记事本程序(您也可以定义成其他的编辑器),

    然后我在缓冲区中留下一条 Sql 语句(就是执行一条 Sql 语句而已),

    再调用 ed(edit 的缩写),这样就可以调出一个记事本的窗口,并且,

    会自动将 Sql 缓冲区中的内容写入到这个记事本编辑器中,

    您呢,可以通过在记事本中编辑您的 Sql 语句,这些内容会自动保存到缓冲区中,

    然后再在 Sql*Plus 中运行 “/”来调用 Sql 缓冲区中的内容(即在记事本中定义的内容),

    其妙用呢,还请看下面的演示

image

然后我再在上面的记事本中将 Sql 语句修改为 select max(empno) from emp;

然后保存记事本中的内容,重新调用 “/”,

image

image

10. Save 命令

    Save 命令呢,是将 Sql 缓冲区中的内容来保存到指定路径的文件中(默认是 . sql 的后缀名)。

    如果这个文件已经存在的话,将会写入失败,当然,如果您想覆盖掉这个文件的话,

    您可以在后面加 Replace 命令,比如 save d:\test replace

image

image

image

11. 使用注释命令

    在 Sql*Plus 中,您可以使用三种方法实现注释,

    一是使用 Remark 命令来实现单行注释,且是用于命令文件中(即 . sql 中)

    二是使用 /*…….*/ 来实现多行注释,

    三是使用 -- 来实现单行注释

image

image

image

image

12. Run 命令

    首先是 run(缩写是 r) 命令,这条命令的作用是列出当前缓冲区中的 Sql 语句,

    同时执行这条语句,其可以和“/”来对比,“/”这个命令呢,只是执行缓冲区中的语句,

    而并不会显示出缓冲区中的 Sql 语句

image

13. @ 命令

    这个命令呢,是用来运行指定路径的文件中定义的 Sql (当然也包括PL/SQL)语句的。

    这个命令既可以在会话层使用,也可以在命令层使用,何为会话层呢,

    就是当用户登录了 Oracle 时,就会自动建立一个会话,在这个层面上就是会话层,

    而何为命令层呢,自然就是没有用户登录的情况下,而只是使用 SqlPlus 命令连接到了 Oracle ,

image

14. Start 命令

    这个命令呢,和 “@”命令功能很类似,但是呢,这个命令却并没有 “@”命令那么强大,

    其只能运行在会话层,而不能工作在命令层。

image

15. Get 命令

    Get 命令呢就是将指定路径下的 .sql 文件中的内容读取出来,但是并不执行这些内容。

image

在 Sql*Plus 中呢,其实还有很多的命令,诸如格式化列啊,

设置每一页显示的记录条数啊,设置每一行的宽度啊,

设置指定名称列的宽度啊,

这些呢,我就只稍微写点范例了,因为这些都太常见,几乎每次都要使用,

估计大家也都很熟悉了,所以便不作介绍了

col ename for a50

set pagesize 100

set linesize 200

 

posted @ 2010-04-09 23:46  小宝马的爸爸  阅读(3870)  评论(1编辑  收藏  举报