欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Oracle数据库应用教程 » 正文

Oracle学习教程:SQL*PLUS简介

创建时间:2012年04月06日 17:10  阅读次数:(6590)
分享到:
概述:
1,SQL*Plus是Oracle提供的访问数据库服务器的客户端软件,是Oracle的核心产品。
2,SQL*Plus:
    SQL指Structured Query Language,即结构化查询语言
    Plus指Oracle将标准SQL语言进行扩展,提供另外一些Oracle服务器能够接受和处理的命令。
3,通过SQL*Plus直接存取Oracle数据库,包括数据提取、数据库结构的修改和数据库对象的管理。
4,所用的命令和函数都是基于SQL语言的。

SQL*Plus 作用
1,输入、编辑、存取和运行SQL命令。
2,测试SQL程序段的正确性。
3,调试PL/SQL程序段的正确性。
4,对查询结构进行格式化,计算、存储、打印或生成网络输出。
5,向其他客户端用户发送消息或接收反馈信息。
6,管理和维护数据库。 

启动SQL*Plus
在操作系统界面选择
“开始”-- > “程序”-- > “Oracle-OraHome90” -- > “Application Development” -- >”SQL Plus”。如下图:
http://www.lmwlove.com/ac/ID544

启动SQL*Plus Worksheet
全屏幕编辑器,屏幕显示为窗口式,可同时执行多条命令
在操作系统界面选择“开始”-- > “程序”-- > “Oracle” -- > “OraHome90” -- > “Application Development” -- >” SQL*Plus Worksheet”。如下图:
http://www.lmwlove.com/ac/ID544

设置SQL*PLUS环境
1,命令方式
SET命令格式: SET <选项 ><值或开关状态 > 
SHOW命令可以显示SQL*Plus环境参数的值。

2,对话框方式,如下图:
http://www.lmwlove.com/ac/ID544

常用的主要参数
1,LINESIZE和PAGESIZE
例 设置行宽为60,设置页的长度为30。
 SQL >SET LINESIZE 60
 SQL >SET PAGESIZE 30

2,ECHO  设置在SQL*Plus的环境下执行命令文件时,命令是否显示有屏幕上
 SQL > SET ECHO ON 命令本身显示在屏幕上。
 SQL > SET ECHO OFF 命令本身不显示在屏幕上。

3,PAUSE 设置在每页输出的开始处是否停止。
SQL > SET PAUSE ON 每页输出的开始处停止,按回车键后继续滚动

4,TIME
SQL > SET TIME ON  表示在每个命令提示前显示当前时间。

5,NUMFORMAT
SQL > SET NUMFORMAT 设置查询结果中显示数字的缺省格式。

6,保存系统变量 
保存全部系统变量当前设置的命令如下:
STORE SET  file_name;

7,将SQL*Plus系统变量的当前值保存到新命令文件plusstore.sql中。
SQL > STORE SET plusstore.sql;

8,恢复保存的系统变量使用的命令如下:
SQL > STORE file_name;

格式化查询结果
1m替换变量
&替换变量
DEFINE 和 UNDEFINE 命令
双 & 符号替换变量
VERIFY命令
2,格式化查询输出
COLUMN命令
BREAK命令
TTITLE、BTITLE、REPHEADER、REPFOOTER命令

任务16:按用户输入的日期查询-替换变量
替换变量:SELECT语句中,在某个变量前面使用&符号,表示该变量是替换变量。执行语句时,系统会提示用户输入变量的值。
(1)替换变量
(2)有日期和字符值的替换变量     
例  接受用户的日期的SQL语句。
SQL >select employee_id,first_name,last_name,hire_date
from hr.employees where  hire_date=’&hire_id’;
(3) 列名、表达式和文本的替换变量
例 替换变量用于列名。
SELECT &Col_Name  FROM Employees;

例 替换变量用于表达式。
SQL >SELECT Name  FROM Employees WHERE  &var;

DEFINE 和 UNDEFINE 命令
DEFINE命令:预定义替换变量的值
DEFINE Variable=value:创建定义变量,并赋值
DEFINE Variable:显示变量、变量的值和数据类型
DEFINE:显示所有预定义变量

SQL >DEFINE City=珠海 
UNDEFINE
使用UNDEFINE命令,可以删除替换变量City。
例如:SQL >UNDEFINE City;

双 & 符号替换变量
重新使用某个变量并且不希望重新提示输入该值,可以使用双&符号变量 (&&)
SQL >SELECT EmployeeID,Name,Address, &&Column
FROM Employees ORDER BY &&Column DESC;


VERIFY命令 
SET VERIFY ON/OFF命令  设置是否显示执行替换的值,可以观察替换变量值前后的SQL语句。
设置值为ON,此功能可用,可以用来验证输入的值是否正确。
若设置值为OFF,该功能禁用。默认值为ON。
SQL >SET VERIFY ON
SQL >SELECT Name FROM Employees WHERE EmployeeID=&EMP_ID;

输入了EMP_ID的值后,系统显示该变量的新旧值。
如输入值000002,其输出结果如下:
Old 1:SELECT Name FROM Employees WHERE EmployeeCode=&EMP_ID;
New 1:SELECT Name FROM Employees WHERE EmployeeCode=000002;

格式化查询输出
COLUMN命令
语法格式 :COL[UMN] column_name [option]

CLE[AR] 除去列格式
HEA[DING] text 为列设置标题。
FOR[MAT] format 改变列数据的外观
NOPRI[NT] 隐藏列
NUL[L] text 为空值分配要显示的文本
PRI[NT] 显示列

Format:指定该列的格式字符和宽度。
1,字符和日期列:A**表示, **为宽度。如:A10
2,数字字段,有一些格式掩码,使用的符号

符号 定义 格式 输出样本
9 单个零禁止数字 9999 6578
0 加前导零 09999 06578
$ 在数值前加美元前缀 $9999 $6578
, 千位分隔符 9,999 6,578
例:
SQL > COLUMN SAL JUSTIFY RIGHT FORMAT $99,999.00 
SQL > select * from emp;

任务17:将雇员查询统计信息输出 格式化查询输出-3
BREAK命令

BREAK ON Column_Name
SQL>SELECT job, empno, ename, mgr, hiredate, sal, comm FROM scott.emp;
SQL>break on job;
SQL>select job, empno, ename, mgr, hiredate, sal, comm from scott.emp order by job;

TTITLEBTITLEREPHEADERREPFOOTER
TTITLE [text|OFF|ON]?BTITLE [text|OFF|ON]
SQL>TTITLE '月 薪 报 表‘
SQL>BTITLE '大洋软件公司‘
SQL>COLUMN Employee_ID? HEADING '员工代码‘
SQL>COLUMN salary HEADING '月工资‘
SQL>COLUMN salary JUSTIFY RIGHT FORMAT $99,999.00
SQL>SELECT Employee_ID, salary? FROM hr.Employees
WHERE Employee_ID between '100’ and ‘106’;

SQL*PLUS编辑器的编辑命令
缓冲区编辑器

命令 说明
A<文本>
C/<旧文本>/<新文本>
C/<旧文本>…/<新文本>
DEL n
I
L n
R
SAVE filename
GET filename
START filename or @ filename
在缓冲区中当前行最后添加文本
用新文本替换旧文本
用新文本替换从旧文本开始的所有文本信息
删除第n行。如果没有第n行,则删除当前行
在当前行之后插入一行
显示第n行。若没有第n行,则显示整个缓冲区内容
执行缓冲区中的命令
在文件filename.sql中存储当前缓冲区的内容
把文件filename.sql中的内容加载到缓冲区中
装载并执行filename.sql

外部编辑器
使用外部编辑器要先定义,然后再调用。定义的方法:
“编辑”--> “编辑器”--> “定义编辑器”-->输入编辑器的名称-->“确定”。

SQL*PLUS编辑器的编辑命令
例:在缓冲区编辑器中按步骤完成如下任务(在SQL>提示符下输入命令并运行)
1)用SQL命令显示DEPT表的内容;
SQL>select * from dept;
2)将该SQL命令存入dept.sql文件;
SQL> SAVE? dept.sql
3)清空缓冲区;
SQL>DEL
4)调入dept.sql文件到内存;
SQL>GET dept.sql
5)再次执行同样的SQL命令。
SQL>@ dept.sql

SQL>START dept.sql

任务18:将雇员查询统计结果输出到文件中-假脱机输出
语法格式:?Spool spool_file_name
例:将Employees表和Departments表的查询结果输出到文件d:\spool_test.prn中。

SQL>Spool d:\spool_test.prn
SQL> SELECT name,birthday,address FROM Employees;
SQL> SELECT DepartmentID,DepartmentName FROM Departments;
SQL> Spool off

联机帮助
help命令
SQL>help
SQL> help spool

describe命令
SQL> desc emp;

增强功能
Oracle 10g中几个比较有用的改进。
1,可自定义的提示符。
2,改进的CONNECT命令

小结
1,Oracle中最常用的工具是SQL*Plus和SQL*Plus Worksheet
2,SQL*Plus是一个行编辑器。
3,SQL*Plus Worksheet是一个全屏幕编辑器。
4,替换变量用以存储运行时可修改的列名和表达式。替换变量要在变量名前加上一个或两个&符号作为前缀。
5,使用DEFINE命令给变量预定义值。
6,在SQL*Plus中环境参数可控制SQL*Plus的输出格式。
7,COLUMN命令格式化输出实际的表列数据,设置列标题。
8,BREAK命令可抑止重复值,把行分为几个部分,。
9,TTITLE命令用于设置报表中每页的顶部标题;BTITLE用于设置报表中每页的底部标题;REPHEADER用于设置报表的总标题;REPFOOTER用于设置报表的脚注。
10,假脱机(spooling)是将信息写到磁盘文件的一个过程。使用假脱机,可将查询得到的结果存储到一指定的文件中
11,设置假脱机使用Spool命令。

为方便阅读,可下载本教程电子档:Oracle学习情境4:统计分析与报表
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 93+13=? 的结果(结果是:106)
结  果: