zoukankan      html  css  js  c++  java
  • 跟我一起学Oracle 11g【3】SQL*Plus运用与OEM简介

    前言

    在第二篇的时候,为了不偏离用户管理的主题,所以对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的世界里,还有很多很多的东西值得你去发现。不过,我还是建议初学者不去用这个,别太依赖这个东东,初学的时候 动手敲敲 还是有好处滴!~~~

    好晚了!~~

    安!~

  • 相关阅读:
    [Unit Testing] Angular Unit Testing, ui-router, httpbackend and spy
    [Redux] Reducer Composition with Arrays
    [Redux] Writing a Todo List Reducer (Toggling a Todo)
    [Redux] Writing a Todo List Reducer (Adding a Todo)
    [Javascript] Advanced Reduce: Common Mistakes
    [Javascript] Advanced Reduce: Additional Reducer Arguments
    [Redux] Avoiding Object Mutations with Object.assign() and ...spread
    [Javascript] Introducing Reduce: Common Patterns
    AI-Info-Micron-Insight:工业 5.0,伟大的思想将殊途同归
    AI-Info-Micron-Insight:案例分析:美光使用数据和人工智能来发现、倾听和感觉
  • 原文地址:https://www.cnblogs.com/damonlan/p/2592616.html
Copyright © 2011-2022 走看看