Oracle 11g学习笔记--SQL * plus

Oracle 11g学习笔记–SQL * plus

说明:本文内容总结自《Oracle Database 11g SQL 开发指南》 Jason price著

sql*plus是与oracle数据库进行交互的客户端工具,借助sql*plus可以查看、修改数据库记录。在sql*plus中,可以运行sql*plus命令与sql语句。

启动方式

  1. 在cmd中启动,输入sqlplus回车,或者输入sqlplus 用户名/密码回车(安装时,会自动加入到环境变量中);
  2. 从开始菜单启动SQL*Plus;
  3. 在安装目录下app\oracle\product\11.2.0\server\bin中也可以找到sqlplus.exe,点击运行即可;

功能清单

  1. 查看表结构
    describe(desc) table_name 该语句会显示表结构;

  2. 编辑SQL语句
    注意这种方式主要适用于输入多行sql语句的情况下,否则只要一行,没有必要使用;

    命令 说明
    a[ppend] x 将x附加到当前行后面
    c[hange] /old/new 将当前行中的old替换为new
    cl[ear] buff[er] 清除缓存区中的所有行
    del 删除当前行
    del x 删除 x 行
    l[ist] 列出所有行
    l[ist] x 列出x行
    r[un] 或 / 执行缓存区中的语句
    x 将x行作为当前行

    注:以上[]中的内容为可选输入

  3. 保存,检索并运行包含SQL语句 SQL*plus命令的脚本

    命令 说明
    sav[e] filename [{replace|append}] 将缓存区中的内容存到filename中,append是追加到现有文件,replace是替换现有文件
    get filename 将filename文件内容读取到缓冲区
    sta[rt] filename 或者 @ filename 执行指定文件内容
    ed[it] 将缓冲区的内容复制到一个文件中(自动创建),然后启动系统编辑器,开始编辑,退出时,所有文件内容将被复制到缓冲区
    edit filename 与edit相同,只不过编辑的是指定文件
    spo[ol] filename 打开输入到制定文件的流,以后每一行dos显示都将存储到filename中,只到关闭
    spo[ol] off 停止存储,并关闭该文件

    注:以上[]中的内容为可选输入

  4. 格式化SQL*plus返回的结果

    格式化列主要使用的column命令:col[umn] {column|alias} [options]
    column:指定列名
    alias:指定列别名
    options:格式化选项

    格式化选项

    ■1>>for[mat] format :format指定时一些指定格式,常用的有:
    A12,将列宽度指定为12; 99.99 符号加两位数字在加小数点后面两位小数。其它可以自由组合。此处还可以格式化日期,MM-DD-YYYY等
    ■2>>hea[ding] heading : 将列标题中的文本设置为heading
    ■3>>jus[tify] [{left|center|right}] : 左对齐,居中,右对齐(实验了一下,只能对标题生效)
    ■4>>wra[pped] : 换行显示,单个单词会跨越多行
    ■5>>wor[d_wrapped] : 与上面相同,但是单词不会被截断

    举例:
    column column_name heading 列名 format A5 wor
    --清除格式
    column column_name clear

  5. 在SLQ*plus中使用变量

    ■临时变量
    在sql语句中嵌入¶m,运行sql语句后,会提示你输入参数的值;

    例:
    SQL> select *from test where id = &id;
    输入 id 的值: 7
    原值 1: select *from test where id = &id
    新值 1: select *from test where id = 7

    那么如果我要用到&号该怎么办,这是你可以用使用set define ‘#’即可,这样就将定义符号换为#号了;

    有人会觉得现实原值和新值很难看,这时候你可以使用set verify off/on来切换是否显示

    有时候你可能会遇到这样的情况如
    select &column where &column = &value;
    这样你就需要输入两次column的值,在此,你可以将&写成两个,就可以避免输入两次了;

    ■已定义变量
    SQL> define param = 4
    这样就可以非临时变量了,引用方式同临时变量一样;
    SQL>define
    单独输入define会显示所有已经定义的变量
    SQL>undefine param
    删除指定变量

    ■accept指令
    accept用于定义并设置变量,语法格式为
    ACCEPT param [type] [FORMAT format] [PROMPT prompt] [HIDEN]
    param:变量名称
    type:类型,char, number, date
    foramt:就是本文格式化选项中提到的format
    prompt:提示输入的文字
    hide:隐藏输入的值,可能是密码
    例:accept password number format 999999 prompt ‘password:’ hide

    你可能觉得这些没什么作用,其实这些功能是给不懂sql语句人使用的,程序员可以将以上制作成一连串的sql*plus脚本,然后用@ filename 运行,这样用户就能收到各种提示,并根据提示输入,获取结果;

补充:使用set linesize 10可以设置行宽
set pagesize可以设置页面大小

你可能感兴趣的:(oracle)