估计用 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
(该路径可能随机器的安装路径不同而不同)
2. 登陆 Oracle 命令
使用 connect 用户名/密码,或者是直接运行 connect (connect 命令是可以缩写为 conn 的),
如果是直接使用 connect 命令的话,则会在后续的运行中提示输入用户名和密码,
直接运行 connect 命令呢,有一大好处,就是您输入的密码会自动隐藏,不让用户看见,
比如下面的例子中口令行就被隐藏了
3. “ /“命令
这里需要提及一个东西,就是当运行 Sql*Plus 时, Oracle 会在在缓冲区中保留最后的执行命令,
而针对这个缓冲区中的保存的命令,可以使用符号 “/”来快速访问,
即可以使用 “/”命令来再次运行您最后执行的命令
4. Sql*Plus 行编辑之 List 命令
这里呢,也还是需要提一下,就是 Sql*Plus 呢提供了一个行编辑的功能,
这个功能呢主要是针对快速修改 Sql 缓冲区中的 Sql 语句,并且再次用来执行。
需要注意的是,由于缓冲区中只保存了您执行的最后一条 Sql 语句,
而行编辑就是针对这一条语句来说的,因为这一条 Sql 语句可能有 n 行,
List 命令呢,总共有三种形式,及 List --列出缓冲区中所有的行,
List n --列出缓冲区中的第 n 行,List * --列出当前行,
然后呢,您需要注意的是哪一行才是当前行,当前行呢,在使用 List 列出后,
会在其前面有一个 * 标志,当前行会随着您的选择而变化。
下面的例子中 Sql 语句总共有三行,您可以注意 * 的变化
5. Sql*Plus 行编辑之 Del 命令
这个 Del 命令呢,就是用来删除缓冲区中储存的 Sql 语句的指定的行的。
形式呢,也可想而知,有三种,
即 Del --删除所有行,Del n --删除指定行,Del * --删除当前行
6. Sql*Plus 行编辑之 Input 命令
前面呢,介绍了行编辑的查看和删除,那么这里就要介绍如何往缓冲区中的行里头添加新的行,
这里就是使用 Input 命令来实现的,详细的请看下面的演示过程
7. Sql*Plus 行编辑之 Change 命令
这个 Change 命令的作用就是将 Sql 缓冲区中的某行进行修改
8. 清空 Sql 缓冲区命令
Clear Buffer,作用的话自然是将 Sql 缓冲区中的所有行进行删除,即清除缓冲区
9. 定义 Sql 编辑器命令
define_editor
各位呢,估计也是体会到了在 Sql*Plus 这个黑框框中输入 Sql 语句时的麻烦,
但是呢,下面介绍的是您自己可以自定义一个编辑器来编辑 Sql 语句,
下面的例子是先定义您的编辑器,我定义的是记事本程序(您也可以定义成其他的编辑器),
然后我在缓冲区中留下一条 Sql 语句(就是执行一条 Sql 语句而已),
再调用 ed(edit 的缩写),这样就可以调出一个记事本的窗口,并且,
会自动将 Sql 缓冲区中的内容写入到这个记事本编辑器中,
您呢,可以通过在记事本中编辑您的 Sql 语句,这些内容会自动保存到缓冲区中,
然后再在 Sql*Plus 中运行 “/”来调用 Sql 缓冲区中的内容(即在记事本中定义的内容),
其妙用呢,还请看下面的演示
然后我再在上面的记事本中将 Sql 语句修改为 select max(empno) from emp;
然后保存记事本中的内容,重新调用 “/”,
10. Save 命令
Save 命令呢,是将 Sql 缓冲区中的内容来保存到指定路径的文件中(默认是 . sql 的后缀名)。
如果这个文件已经存在的话,将会写入失败,当然,如果您想覆盖掉这个文件的话,
您可以在后面加 Replace 命令,比如 save d:\test replace
11. 使用注释命令
在 Sql*Plus 中,您可以使用三种方法实现注释,
一是使用 Remark 命令来实现单行注释,且是用于命令文件中(即 . sql 中)
二是使用来实现多行注释,
三是使用 -- 来实现单行注释
12. Run 命令
首先是 run(缩写是 r)命令,这条命令的作用是列出当前缓冲区中的 Sql 语句,
同时执行这条语句,其可以和“/”来对比,“/”这个命令呢,只是执行缓冲区中的语句,
而并不会显示出缓冲区中的 Sql 语句
13. @ 命令
这个命令呢,是用来运行指定路径的文件中定义的 Sql (当然也包括PL/SQL)语句的。
这个命令既可以在会话层使用,也可以在命令层使用,何为会话层呢,
就是当用户登录了 Oracle 时,就会自动建立一个会话,在这个层面上就是会话层,
而何为命令层呢,自然就是没有用户登录的情况下,而只是使用 SqlPlus 命令连接到了 Oracle ,
14. Start 命令
这个命令呢,和 “@”命令功能很类似,但是呢,这个命令却并没有 “@”命令那么强大,
其只能运行在会话层,而不能工作在命令层。
15. Get 命令
Get 命令呢就是将指定路径下的 .sql 文件中的内容读取出来,但是并不执行这些内容。
在 Sql*Plus 中呢,其实还有很多的命令,诸如格式化列啊,
设置每一页显示的记录条数啊,设置每一行的宽度啊,
设置指定名称列的宽度啊,
这些呢,我就只稍微写点范例了,因为这些都太常见,几乎每次都要使用,
估计大家也都很熟悉了,所以便不作介绍了
col ename for a50
set pagesize 100
set linesize 200