1、Oracle 数据库管理工具概述

顾名思义,数据库管理工具就是用来管理数据库的,一般分为命令行工具和图形化工具两类。平常大家说的数据库管理工具一般是指图形化工具。常见的每种数据库都有很多管理工具,还有支持多种数据库管理的工具,可谓是五花八门。一般数据库厂商都会提供针对自家数据库的管理工具,譬如微软的 SQL Server Management Studio(SSMS),甲骨文的 SQL Developer、SQL*Plus(由于*不易写,下文将统一省略为 SQL Plus)、Enterprise Manager(EM) 等。

如果你用 SQL Server,那么 SSMS 将是你唯一明智的选择,因为 SSMS 是一个包罗万象的集成环境,几乎你需要的所有功能都能从中找到,而且它界面较为美观、操作也比较方便和流畅,第三方工具实在难以望其项背。但如果你用 Oracle,你会发现 SQL Plus 和 EM 根本用不顺手,可能 DBA 更喜欢这两个工具,而 SQL Developer 明显比较卡顿。所以程序员一般都不用 Oracle 官方的工具,反倒是用 PL/SQL Developer、Toad for Oracle 等三方工具的比较多。

我发现身边的同事基本上都是用 PL/SQL Developer,只有极少数在用 Toad for Oracle 或 SQL Developer;而且有经验的程序员一般都用过 SQL Plus,但普遍都是通过 cmd 来调用,说实话 SQL Plus 里有些命令的确很好用。下面将简述几个常见工具以供大家参考:

2、SQL Plus 实用命令参考

SQL Plus 支持的命令非常多,绝大部分我也没用过,但有些好用的命令偶尔也会用用。本节将按功能介绍一些我个人觉得还比较实用的命令。在具体介绍之前,我先做两点说明,第一,SQL Plus 总是会通过一个右尖括号“>”来提示输入下一行;第二,很多命令都有简写形式,本文会同时给出两种形式,为减少累赘叙述和增强排版美观,书写格式统一定为:完全命令/简写命令

2.1、连接/断开命令

连接命令:打开 cmd 输入sqlplus并按下回车(即打开 SQL Plus),结果如图:



根据提示输入用户名并按下Enter,会进一步提示输入口令,然后输入密码并按下Enter,即可连上 Oracle,结果如图:



这里有个需要注意的小细节就是密码不会回显,所以你得确保一次性输对,过程中不能按其它键,尽管按什么都看不见。

如果你内心是拒绝看不到输入的,那么还可以更简单一些,只要在提示输入用户名的时候一次性把用户名和密码都输入,然后回车也能连上 Oracle。具体写法有 4 种,语法示例:

username/password
username/password@tnsname
username/password@//host:port/instance_name
/ as sysdba

其中,第 1 种写法通过本地连接,不需要数据库服务器启动监听,只要数据库服务器处于可用状态即可。第 2 种写法通过网络连接,需要数据库服务器启动监听。第 3 种写法与第 2 种写法功能类似,而且不用配置监听名。第 4 种写法通过操作系统认证,不需要数据库服务器启动监听,也不需要数据库服务器处于可用状态。另外,如果要普通以管理员身份登录,则需要在最后加上as sysdba即可。

其实还有更简单的方式,一步就能连上 Oracle——打开 cmd 之后一次性输入sqlplus和上文 4 种用户名密码写法中的任何一种即可。示例如图(写法 1):

断开命令:连上数据库之后,如果想要回到 cmd,可以用exitquit,这两个命令的功能相同,都是终止 SQL Plus 并返回到操作系统。示例如图:

假如要向数据库提交修改并断开连接,但不想退出 SQL Plus,可以用disconnect/disc,示例如图:

断开连接后如果想再连上数据库就得用connect/conn了,该命令之后可以跟上文 4 种用户名密码写法中的前 3 种。示例如图(写法 1):

2.2、执行 SQL 语句

可以在 SQL Plus 中执行任何 SQL 语句。有个/命令专门用于执行 SQL 语句或 PL/SQL 语句块,写完整个语句后回车,然后在下一行输入一个/再回车,即可执行上面的语句。示例如图:



我本人不太喜欢/命令,因为它的用法让我感觉到不适,尤其是得按多次回车,比较繁琐。后来我发现只要在 SQL 语句末尾加上;并回车也能执行,除有些多行 PL/SQL 语句块必须用/才能执行以外,其它情况都可以用;替代/。所以我平常是能用;就用;,实在不行再用/。示例如图:

可以通过在行的尾部输入一个连字符-并回车把较长的 SQL 语句分成多行输入,为了排版也可以在连字符的前面输入空格,甚至可以省略连字符。示例如图:

2.3、执行 PL/SQL 语句

也可以在 SQL Plus 中执行 PL/SQL 命令或块。譬如你可以通过show命令来查看当前登录用户的用户名,示例如图:



show用于显示 SQL Plus 系统变量或 SQL Plus 环境的值。与之相对的set用于设置系统变量的值以改变当前会话的 SQL Plus 环境。如果查询结果集的列数或行数较多的话,SQL Plus 的显示结果可能会很乱,这时候就可以通过set来改变linesizepagesize的值,从而使得显示结果更为美观。示例如图:

另外,show命令还有几个与linesize用法完全相同的参数,如release/rel用于显示版本,sga用于显示 SGA,all用于显示所有系统参数的当前值,具体写法可参考上例。set命令有一对类似开关的参数分别是time ontime off,前者用于在窗口每一行前显示当前系统时间部分,而后者则用于关闭时间显示,也就是默认的效果,有兴趣的读者可自行试试set time on的效果。

有个非常好用的命令describe/desc,官方释义为:列出指定的表、视图或同义词的列定义,或者列出指定函数或过程的规范。示例如图:

2.4、文件操作命令

有时候好不容易写了一条比较长的语句,而且往后可能还会用到,这就需要保存下来备用了,或者你想执行某个脚本文件中的脚本,又或者你只是想看看某个脚本文件,甚至你还想直接打开脚本文件编辑它……很显然,如果没有相关命令的支持,在 cmd 窗口里是很不方便完成这类文件操作的,好在 SQL Plus 已经提供了相关命令。命令说明如下:

  • save:把缓冲区中的内容保存到一个操作系统文件中(我试过后缀用 sql 或 txt 都行)。
  • start\@:执行指定脚本中的 SQL Plus 语句。可调用本地文件系统或 Web 服务器中的脚本。
  • @@:执行脚本。这个命令与@命令类似。所不同的是在执行嵌套的脚本时,它会在与调用它的脚本相同的路径中查找要执行的脚本。简单的说就是它可以在一个脚本中调用另一个脚本。
  • get:把操作系统文件中的内容读取到缓冲区中。
  • edit:调用操作系统的一个文本编辑器来编辑指定文件或缓冲区中的内容。
  • spool\spo:把查询结果保存到操作系统文件中,也可以发送到打印机。

前 5 个命令用法是一样的,只需要在命令后面跟脚本文件全路径回车即可。也可以只写文件名,即默认脚本文件在当前用户目录中(格式:“C:\Users\用户名\脚本文件名”,我只在 Windows 7 中测试过)。这 5 个命令相对来说比较简单,结果也显而易见,就不再提供示例了。

spo命令相对复杂,我感觉它就相当于一个文件操作开关,它可以把打开后到关闭前所有查询语句及查询结果都保存到指定的文件中。示例如图:



结果如图:

2.5、修改用户密码

password\passw:修改指定用户的密码,省略参数默认修改当前用户的密码。注意密码不在输入设备上回显。示例如图:

2.6、执行存储过程

  • execute\exec:执行 PL/SQL 语句。尤其是执行带存储过程的语句,比普通的 PL/SQL 语法要简洁很多,尤其是执行不带参数的存储过程,直接在exec后跟存储过程名字并回车即可。
  • variable\var:声明可在 PL/SQL 中引用的绑定变量。
  • print:显示绑定变量的当前值。

普通 PL/SQL 语法调用带输出参数的存储过程,示例如图:



利用exec调用带输出参数的存储过程,示例如图:

2.7、其它命令

  • help:访问 SQL Plus 帮助系统。这应该是非常有用的一个命令,可以在这个命令之后跟其它命令来查看其它命令的帮助说明。
  • host:在不退出 SQL Plus 的情况下执行操作系统命令。譬如正在用 SQL Plus 的时候,急需看一下本机能不能访问百度,示例如图:

  • startup:启动 Oracle 实例,并可装载和打开数据库。
  • shutdown:关闭正在运行的 Oracle 实例。

3、总结

本文主要对常见 Oracle 数据库管理工具做了个概括,并着重对 SQL Plus 中的实用命令做了个总结。可能大多数开发人员都觉得 SQL Plus 使用不方便,但我个人觉得某些特殊时候用一下 SQL Plus 反而能更方便快捷的解决问题。譬如你突然忘记了某个急需登录的用户的密码,比起先打开其它数据库管理工具,然后以管理员身份登录,进而找到对应用户,最后再来更改密码而言,显然是通过 SQL Plus 操作更为简单快速,示例如图:

本文链接http://www.cnblogs.com/hanzongze/p/oracle-sqlplus.html

版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!本人初写博客,水平有限,若有不当之处,敬请批评指正,谢谢!

.Net程序员学用Oracle系列(17):数据库管理工具(SQL Plus)的更多相关文章

  1. .Net程序员学用Oracle系列(1):导航目录

    本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...

  2. 系列文章----.Net程序员学用Oracle系列

    .Net程序员学用Oracle系列(18):PLSQL Developer 攻略 .Net程序员学用Oracle系列(17):数据库管理工具(SQL Plus) .Net程序员学用Oracle系列(1 ...

  3. .Net程序员学用Oracle系列(9):系统函数(上)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...

  4. .Net程序员学用Oracle系列(10):系统函数(下)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2. ...

  5. .Net程序员学用Oracle系列(2):准备测试环境

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.创建说明 1.1.为什么要创建的测试环境? 1.2.了解 Oracle 实例的默认用户 2.创建环境 2.1.创建基本环境 ...

  6. .Net程序员学用Oracle系列(6):表、字段、注释、约束、索引

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...

  7. .Net程序员学用Oracle系列(7):视图、函数、过程、包

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...

  8. .Net程序员学用Oracle系列(8):触发器、任务、序列、连接

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...

  9. .Net程序员学用Oracle系列(11):系统函数(下)

    1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...

随机推荐

  1. EQueue - 一个C#写的开源分布式消息队列的总体介绍(转)

    源: EQueue - 一个C#写的开源分布式消息队列的总体介绍 EQueue - 一个纯C#写的分布式消息队列介绍2 EQueue - 详细谈一下消息持久化以及消息堆积的设计

  2. 【转】50条大牛C++编程开发学习建议

    每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...

  3. 批量检查APK是否具有指定的权限。

    为测试组的妹子提供的. 效果如下: 目录结构如下: 源代码思路: 1.将apk文件变为zip文件.这里是修改后缀 2.解压文件到指定目录.可以只解压其中mainfest.xml文件 3.移动xml文件 ...

  4. Markdown及MarkdownPad使用规则

    Markdown Markdown 是一种轻量级标记语言.它允许人们"使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档". Markdown语法简要 ...

  5. vi的基本操作

    vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command m ...

  6. MVC笔记2:mvc+jquery.validate.js 进行前端验证

    1.引用如下js和css 代码 <link href="@Url.Content("~/Content/Site.css")" rel="sty ...

  7. UVa 10706 - Number Sequence

    题目大意:Sk表示从1到k的字符序列,如S4为1234,现如今有如下的序列S1S2...Sk,形如1 12 123 1234这样的序列,给一个数n,让你去这个序列第n个位置上的数字. 可以构建出一个S ...

  8. 如何使用Grunt(好文)

    Grunt 是什么? Grunt 基于Node.js之上,是一个以任务处理为基础的命令行工具,可以减少优化开发版本为发布版本所需的人力和时间,从而加速开发流程.它的工作原理是把这 些工作整合为不同的任 ...

  9. curl远程传输工具

    /** * curl远程传输工具 */ public function post_curl($url,$body,$header,$type='POST'){ $ch = curl_init(); c ...

  10. Yii 1.0 基础

    骨架搭建 1.下载2.windows 创建PHP环境变量,找到php.exe的目录D:\wamp\bin\php\php5.3.5,右键我的电脑,属性\高级设置,path最后添加 ;D:\wamp\b ...