您的位置:首页 > 数据库 > Oracle

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

2012-07-18 01:39 429 查看

前言

在第二篇的时候,为了不偏离用户管理的主题,所以对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   --给出列的别名,BREAK和COUMN可以引用所定义的别名。
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 9或0的个数决定最多显示多少位
9,999,999.99 按照逗号和小数点来显示数据,若是0以空格显示
099999 显示前面补0
$999,999.99 数字前加美圆号
B99999 若为0 ,则结果为空白
99999Mi 若数字为负,则负号放在数字后(右边),缺省放在左边
99999PR 负号将以括号括起
9.999EEEE 以科学记数法表示(必须有4个E)
999V99 数字乘以 10n ,如 1234变为 123400
DATE 采用日期数字格式(MM/DD/YY)

如图所示:



3.设置页面大小

语法格式:


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


4.设置行的大小

语法格式:


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


5.使用变量

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

变量分2种:

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

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

[b]5.1临时变量[/b]

在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次,为了避免重复输入相同的变量,可以使用&&代替!~如图,



[b]5.2已定义变量[/b]

上面的变量是临时变量,使用过后就会被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:是否隐藏,比如你要输入密码,那么你需要输入这个,防止偷窥狂!。


如图所示:



[b]5.3删除定义的变量[/b]


undefine 变量名


[b]5.4在脚本中使用临时变量[/b]

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

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

select * from dept
where deptno=&my_deptno


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



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

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

[b]5.5向脚本的变量传递值[/b]

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

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

select * from dept
where deptno>=&1


然后再调用:



[b]6. Break on和Compute的使用[/b]

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

好晚了!~~

安!~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: