Oracle 11g学习笔记–SQL * plus
说明:本文内容总结自《Oracle Database 11g SQL 开发指南》 Jason price著
sql*plus是与oracle数据库进行交互的客户端工具,借助sql*plus可以查看、修改数据库记录。在sql*plus中,可以运行sql*plus命令与sql语句。
启动方式
- 在cmd中启动,输入sqlplus回车,或者输入sqlplus 用户名/密码回车(安装时,会自动加入到环境变量中);
- 从开始菜单启动SQL*Plus;
- 在安装目录下app\oracle\product\11.2.0\server\bin中也可以找到sqlplus.exe,点击运行即可;
功能清单
查看表结构
describe(desc) table_name 该语句会显示表结构;编辑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行作为当前行 注:以上[]中的内容为可选输入
保存,检索并运行包含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 停止存储,并关闭该文件 注:以上[]中的内容为可选输入
格式化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
- 在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可以设置页面大小