代码改变世界

跟我一起学Oracle 11g【3】----SQL*Plus运用与OEM简介

2012-07-18 01:39  随风浪迹天涯  阅读(7219)  评论(7编辑  收藏  举报

前言

在第二篇的时候,为了不偏离用户管理的主题,所以对SQL*Plus的一些很常用的命令没有说清楚,在这里在补充一下咯!因为这些命令对我们平时在SQL*Plus下操作很重要,都是一些重复率很高的运用,掌握了这些,可以让你操作数据库事半功倍的效果哦!~

信不信由你,反正我是信了!~~

对了,前面有些童鞋说,文章太长了,这个真的没有办法短的呀~~因为我想一篇就一个主题嘛,想给点图,然后配合一些理论!~如果分的太细的话,就太多章节了!~见谅咯。

哇~~整理完格式 1点半了!~~赶忙睡觉去了!~~

各位晚安咯!!

---------------------本期目录导航------------------

一。SQL*Plus命令回顾
1.保存、检索并运行文件
2.命令格式化
3.设置页面大小
4.设置行的大小
5.使用变量
5.1临时变量
5.2已定义变量
5.3删除定义的变量
5.4在脚本中使用临时变量
5.5向脚本的变量传递值
6. Break on和Compute的使用
二。Oracle 中OEM的配置

一。SQL*Plus 命令回顾

1.SQL*Plus脚本运用

SQL*Plus可以保存、检索、运行包含SQL*Plus命令和SQL语句的脚本

命令 说明
SAVE filename 讲SQL*Plus缓冲区中的内容保存到filename指定的地方。
GET filename 把filename文件的内容读入到缓冲区中,只显示语句。不执行。
START filename 执行读入缓冲区的语句。
@ filename 同START
EDIT 将缓冲区中的内容复制到一个名为afiedt.buf的文件中,可以进行编辑。

如图:

2.命令格式化

命令如下:

COL[UMN] [{ column | expr } [ option_1 ... option_n ] ]

column:列名
expr:有效的 SQL 表达式
option_1... option_n:可以是下列之一:
ALI[AS] alias   --给出列的别名,BREAKCOUMN可以引用所定义的别名。
CLE[AR] --取消列的定义。
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format  --重要 显示如下:
HEA[DING] text  --Heading 重新标记列的显示标题
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE {expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
FORMAT 列显示格式,format为:
9999990     90的个数决定最多显示多少位
9,999,999.99 按照逗号和小数点来显示数据,若是0以空格显示
099999      显示前面补0
$999,999.99 数字前加美圆号
B99999      若为0 ,则结果为空白
99999Mi     若数字为负,则负号放在数字后(右边),缺省放在左边
99999PR     负号将以括号括起
9.999EEEE   以科学记数法表示(必须有4E
999V99      数字乘以 10n , 1234变为 123400
DATE       采用日期数字格式(MM/DD/YY

如图所示:

3.设置页面大小

语法格式:

set pagesize 页数-----设置页数

4.设置行的大小

语法格式:

set linesize 行数----设置行数

5.使用变量

在我们使用sql*plus的时候,我们有的时候需要定义变量,以便在实际运行的时候代替实际值的使用。

变量分2种:

临时变量:只在使用它的SQL语句中有效。

已定义变量(全局变量)一直保留到SQL*Plus退出为止。

5.1临时变量

在SQL语句中用&定义临时变量(当然可以自己定义一个变量,下面有介绍),后面跟着变量名。运行下面的语句,SQL*Plus会提示用户为v_deptno变量输入一个值,然后再执行。

如图所示:


控制行的输出

如果我是一个很简约的人,我不喜欢上面图中的old和new这2行呢?Oracle可以满足你的要求,只需要输入下面的命令:

set verify off|on -----如果set verify off 就会禁止显示原值和新值的显示,就直接输入值就可以了。on是重新打开。

比如:

自定义临时变量字符

我们知道,如果我们如果想定义一个临时变量可以用"&",其实我们也可以自己自定义临时变量字符!~

语法命令:

set define 字符----定义自定义临时变量字符

如果还原默认的,很简单,只需要set define "&" 就OK了。其实,我觉得这个只是语法糖。实际效果不大。

使用临时变量替换表名

临时变量还可以替换表名,其实 sql语句中的 变量都可以被临时变量替换!

上面的&myDeptno输入了2次,为了避免重复输入相同的变量,可以使用&&代替!~如图,

5.2已定义变量

上面的变量是临时变量,使用过后就会被Oracle销毁了!其实,还有另外一个办法,我们可以定义一个在类似全局变量的变量。

使用Define命令定义变量

Define可以用来定义变量,也可以用来查看变量。

使用Accept命令定义变量

上面的define 是需要把值写死在命令中,这样很不灵活。可喜的是,Oracle中还有一个Accept命令,可是等待用户为变量输入一个值。

ACCEPT 变量名 [type] [ FORMAT format] [FORMAT prompt] [HIDE]

type:给变量分配的类型,比如number、varchar2等等

format:指定变量的格式。比如A15:15个空格;9999:4位数字;DD-MON-YYYY:日期等等。

prompt:提示字符

HIDE:是否隐藏,比如你要输入密码,那么你需要输入这个,防止偷窥狂!。

如图所示:

5.3删除定义的变量

undefine 变量名

5.4在脚本中使用临时变量

在SQL*Plus脚本中,可以使用变量来创建可以运行的脚本,这样当其它的用户使用这个脚本的时候,不需要了解SQL语句的知识,只需要输入变量的值就可以运行在脚本!

现在在我的F盘下面新建一个myFirst.sql,输入下面命令语句:

select * from dept
where deptno=&my_deptno

然后 在我们的SQL*Plus中运行如下:

注意:如果你建立的文件有空格的话,那么你需要把@后面的路径用引号给引起来。

使用accept也和上面一样。。不在演示了。

5.5向脚本的变量传递值

在运行脚本的时候,可以向变量传递值,但必须使用一个数字来引用脚本中的变量

把上面的脚本命令改成下面形式:

select * from dept
where deptno>=&1

然后再调用:

6. Break on和Compute的使用

Break on:字句可以让SQL*Plus根据列值的范围分割输出结果;

Compute:计算列的值。

在本地脚本输入以下命令

break on deptno
compute sum of sal on deptno
set verify off //用来禁止显示验证信息
set echo off //禁止SQL*Plus显示脚本中的SQL语句和命令
set pagesize 50
set linesize 70
clear columns
column deptno heading '部门号' format 99
column ename heading '雇员名' format A20 
column sal heading '工资' format $99999.99
select deptno,ename,sal from emp
order by deptno;
clear columns

得到结果如下:

二。Oracle 中OEM的配置

打开 OEM

这个前几天着实让我郁闷了一把,我怎么都开启不了!~。后来我突然想到,我在那天用360优化了电脑,把一个服务给关了,所以就启动不了OEM这个了,先让大家看一下,下次注意下:

先来看一下什么是百科里的一段OEM的介绍:

企业管理器简称OEM (Oracle Enterprise Manager)

OEM是一个图形化的数据库管理员工具。它为数据库管理员提供了一个集中的系统管理工具,同时 它也是一个用来管理、诊断和调试多个数据库的工具,一个用来管理来自多个地点的多个网络节点和服务的工具。该工具可以使不同的数据库管理员之间共享一些工 作,另外它还提供了一些管理并行服务器和分布式数据库的工具。总之,OEM是一个功能强大且操作简单的图形化数据库管理员工具

很好理解,比如我们建表、表空间等等,我们平时都在上面的命令行创建(当然这里还没说到PL/SQL Developer),这样其实很不方便,所以你就可以进入到OEM中,进行图形化操作。很easy哦。

图1 打开OEM

图2. 登录界面

图3.主目录

OK,我们来看看我们会在平时用的比较多的地方吧!!~~就是那个服务器目录。这里我们可以在这里添加表空间、用户、数据库等等。应该来说,在命令里可以完成的任务 在这里应该基本可以完成(这句话还有待证明。。。。!~)如图:

我们点击“安全性”下面的“用户”,然后再点击“创建”,OK 我们可以打开新建用户界面,我们填上用户名:HelloWorld

点右下角“确定”就OK了,创建了一个用户!~~~然后 在SQL*Plus里看看~

在OEM的世界里,还有很多很多的东西值得你去发现。不过,我还是建议初学者不去用这个,别太依赖这个东东,初学的时候 动手敲敲 还是有好处滴!~~~

好晚了!~~

安!~