教学工作的资源分享

Oracle数据库开发实用教程第四章资料

教育教务系统

教育教务系统

Oracle 11g实用教程第四章SQL*Plus工具内容概要访问和退出SQL *Plus环境2 SQL *Plus命令3总结

访问和退出SQL*Plus环境SQL*Plus可以运行输入的SQL*Plus命令SQL语句包含SQL语句的文件 PL/SQL语句

启动SQL *Plus从菜单命令启动

从Windows“运行”窗口启动退出SQL*Plus环境在SQL提示符后键入exit或quit命令,然后按返回键钥匙SQL *Plus命令

SQL*Plus的管理功能如下。连接命令编辑命令

文件操作命令交互式命令

设置SQL*Plus环境设置查询结果的格式其他命令连接命令

CON[NECT]

命令将断开当前连接,然后建立新连接。 冒着生命危险的语法形式如下。• CONN[ECT]

[ username ]/[ password ] [ @ connect _ identifier ]例如,SQLCONN scott/tiger@orclDISC[ONNECT]

此命令将断开与数据库的连接,但不会退出SQL*Plus环境编辑命令

SQL*Plus命令

主要用于连接和断开与数据库的连接、编辑、保存和记录SQL命令操作、SQL*Plus环境设置、查询结果格式等如何:输入SQL*Plus命令,然后按回车键SQL语句

以数据库为操作对象的语言。 主要包括数据定义语言DDL、数据操作纵向语言DML、数据控制语言DCL、数据存储语言DSL如何执行SQL语句:在语句末尾加上加号(和回车; 输入句子结束换行,按回车键后,SQL语句的输入结束但不执行; 语言输入完句子后按换行键,换行后按斜线(/),该句子将立即执行。PL/SQL程序 Oracle基于标准SQL语言进行过程扩展的编程语言输入PL/SQL程序,换行后输入点编号(.),结束输出进,但不执行; 输入正斜杠(/)将立即执行编辑命令

SQL*Plus行编辑命令命令说明

A[PPEND] text在当前行的末尾添加指定的文本

C[HANGE] /old /new将当前行中的文本old替换为文本newC[HANGE] /text从当前行中删除text清除CL[EAR] BUFF[ER]缓冲区的内容DEL删除当前行

删除第n行

DEL m n删除第m行到第n行

I[NPUT] text在缓冲区的当前行之后添加一行文本。 内容是文本L[IST] [*]列出所有行

列出第L[IST] n行,并将其设置为当前行L[IST] m n列出第m n行到第n行RUN或/执行缓冲区中的SQL语句或PL/SQL程序文件操作命令SQL脚本文件:频繁运行的SQL*Plus命令。SQL语句或PL/SQL程序。

使用SQL*Plus操作SQL脚本文件包括创建脚本文件、装载、编辑和运行文件创建脚本文件命令格式:

savefilename [ create ]|[ replace ]|[ append ]例如:SQL saved :\test script.SQL已创建-testscript.SQL文件

SQL saved :\test script.SQLSP2-05403360文件“d:\testscript.sql”已存在。使用“savefilename [.ext ]替换”。SQL saved :\test script.SQL replace已写入文件d:\testscript.sql

文件操作命令

SQL语句和PL/SQL块存储在SQL缓冲区中,而SQL*Plus命令存储在不自动保存在缓冲区中,而是使用INPUT命令将SQL*Plus命令将输入缓冲区,并用SAVE命令保存包含SQL*Plus命令的中的查询语句在指定文件中例如:

SQLclear buffer缓冲区已清除 SQLINPUT

1 columnsalheading ' monthly salary ' 2 SELECT ename,job,sal from scott.emp3SQL saved :\testscriptreplace已写入文件d :\test script.SQL注意:此时无法执行缓冲区内容,但可以运行相应的脚本文件文件操作命令加载和编辑脚本文件

get命令:将SQL脚本文件加载到SQL*Plus的SQL缓冲区中请参阅

语法格式: get filename [ l [ ist ] ]|[ nol [ list ] ]格式说明: LIST或NOLIST参数表示将脚本文件加载到缓冲区中是否同时显示文件内容; 默认值为LIST例如:

sqlgetd :\SQL脚本

1 * select * from Scott.empwhereempno=7844sqlgetd :\sqlscriptnolist执行脚本文件:使用开始或“@”命令

语法: START filename[.sql] [arg1 arg2]或@filename例如,SQL@d:(testscript.SQL;文件操作命令脚本文件注释

remark:1 :单行注释。 置于一行句子的开头,表示这一点行动注释---单行注释//:行以上的评论

例如,脚本文件script.sql的内容:/*通用报告• to be run monthly.*/

column last _ name heading’last _ name’;columnsalaryheading’monthly salary’format $ 99,999;column commission _ pct heading’commission %’format 90.90;• REMARK Includes only salesmen;• SELECT last_name,salary,commission _ pct from EMP _ details _ view- -只包括销售。

were job _ id=’sa _ man’;交互式命令

职业院校

职业院校

这些变量是SQL语句、在PL/SQL块和脚本文件中。 执行这些代码时,首先将变量替换为请指定变量的值,然后执行用户定义变量直接使用变量:

无需预定义,变量名前有“”符号,用于标识SQL语句、PL/SQL块和可以直接在脚本文件中使用。 在变量名前加上“”符号,赋值后,变量该值将被保存,并且可以一直在当前SQL*Plus环境中使用例如:• SQLSELECT emp_no,enamefromscott.empwheredeptno=noandjob=’v _ job’;输入no的值: 10输入v_job值: MANAGER

原始值1:SELECT emp_no,enamefromscott.empwheredeptno=noandjob=’v _ job’;新值1:SELECT emp_no,enamefromscott.empwheredeptno=10 and job=’manager’;• EMPNO ENAME----------------7782黑色

交互式命令——用户定义变量

预定义变量:需要预定义,且需要提供初始价格

变量定义: DEFINE命令格式: define变量名=变量值使用预定义的变量。 例如:• SQL DEFINE salary=3000

sqlselectenamefromscott.empwheresalsalary;原始值1: selectenamefromscott.empwheresalsalary新值1: selectenamefromscott.empwheresal 3000名称---------国王

交互式命令——用户定义变量

显示所有已定义的变量:执行不带参数的DEFINE命令角色:列出所有已定义的变量,包括系统定义的变量和用途在中定义的变量和参数变量例如:

SQL define

define _ connect _ identifier=' orcl ' (char )define _ sqlplus _ release=' 1001000200 '(CHAR )define _ editor=' notepad ' (char )……

defined no=' 10 ' (char )define salary=' 3000 ' (char )交互式命令——用户定义变量删除预定义的变量: UNDEFINE命令语法格式: UNDEFINE变量名例如:

sqlundefinedno交互式命令

绑定变量:可在SQL*Plus中定义PL/SQL程序中使用的变量。 使用可变命令定义语法格式:

• VARIABLE变量名变量类型为绑定变量赋值: EXECUTE命令语法格式: EXECUTE :变量名:=变量值使用案例SQL VARIABLE v_sal数字

SQLEXECUTE:v_sal:=10;PL/SQL进程已成功完成。SQLBEGIN2 :v_sal:=20;3结束;

4 /

PL/SQL进程已成功完成。SQLPRINT v_salV_SAL---------20

交互式命令

与用户的通信称为PROMPT、PAUSE、ACCEPT三个命令与用户通信PROMPT命令:在画面上显示指定的字符串格式: PROMPT字符串例如:

SQL prompt I ' ma programmerI ' ma programmerACCEPT命令:接受用户的键盘输入,由用户输入将数据存储在指定变量中

格式: ACCEPT变量名类型PROMPT提示信息选项例如:

请输入sqlacceptxzynumberprompt变量xyz的值: default 0请输入变量xyz的值: 100交互命令——用于与用户交互

PAUSE命令:暂停当前执行,由用户输入回车键继续语句格式: PAUSE文本样品

prompt工资统计现在开始

accept dno number prompt部门编号:请输入default 0请输入pause回车键开始统计.

SELECT ename,sal FROMemp WHERE deptno=dno;该脚本文件的执行步骤如下。SQL @escript.sql工资统计现在开始

部门编号:请输入10请输入回车键开始统计.

原始值为1: SELECT ename,salFROM emp WHEREdeptno=dno

新值1: SELECT ename,salFROM emp WHERE deptno=10ENAME SAL------------标记2450

国王5000

MILLER 1300查看和设置环境变量用于维护SQL*Plus系统变量的命令包括

SHOW:显示当前SQL*Plus环境的系统变量,并允许您执行以下操作显示错误消息、初始化参数、当前用户等信息语法格式: SHOW option参数: option具有以下选项:

system_variable,ALL,BTITLE,ERRORS[{FUNCTION|PROCEDURE|包主体-类型

BODY}[schema.]name],PARAMETERS [parameter_name],RELEASE,REPFOOTER,REPHEADER,SGA,SPOOL,SQLCODE,tTITLE,USER例如,要显示SQL*Plus的所有设置信息,请使用以下命令:全秀

查看和设置环境变量

set命令:通过设置系统变量的值来设置SQL*Plus的环境设定语法: SET系统变量的值

例如,SQL*Plus的缺省提示为“SQL”,如果要将提示更改为SQL*Plus。 可以执行以下命令:

sqlsetsqlprompt ' SQL * plus“可以使用STORE SET命令将当前设置信息保存为一个在脚本文件中,可以稍后使用START命令运行脚本将文件、SQL*Plus环境设置为适当的值例如:• SQLSTORE SET mysqlplus.sql• Created file mysqlplus.sql基于SQL *Plus的格式输出格式化查询的结果可以根据用户的设计生成美观的结果用于格式化报表.查询结果的命令主要包括格式化列

数据分组显示统计列

设定报告的标题保存和打印结果格式化列列:是列标题的

字符对齐方式、列数据的宽度、显示格式等。语法格式为:列名选项选项:

职业教育诊改网

职业教育诊改网

• format :指定列数据的显示格式。

• justify :指定列标题的放置方式。 左(left )、中间((center (,右) right )。• null :如果列数据为空,则显示指定的文本。wrapped :当列标题或数据超过规定宽度时怎么表示? 其中,wrapped为默认值意味着将继续显示另一行。Truncated表示要截断剩下的数据。标题选项:用于定义列的标题。 另外标题分为两行显示,格式为“第1行文字|第2行文字”例如:

列名称标题的名称栏销售工资

格式选项:指定数据的显示格式,主要使用,设置字符、数字和日期数据的格式常用格式字符串例如,可以设置sal列的格式栏销售工资

格式$ 999,999.00数据类型格式字符串示例

数字型9999.99 123.40各9表示1位数字,对于数据如果超过指定长度,则为“#”

数字型999999.0012,345.00同上,且每3位1组数字型$ 99999.00 $ 12,345.00在数字前加上“$”符号数字型0000.00 0123.40各0表示1位数字,对于数据超过指定长度时显示“#”在长度不够的情况下为前后填充0

字符类型axx其中xx是正整数,指定数据的宽度度是xx字符,如果超过这个值

度时,显示换行符或截断日期型yyyy-mm-ddhh24:mi:ss2012-04-2615:25:30

yyyy表示4位数的年份,也可以使用yy表示两位数的年份,mm表示两位数的月份部,dd表示两位数的日子。 h24显示24小时制时,mi表示分钟,ss表示秒。 这些格式也可以是其他方面分隔符,如(/)JUSTIFY选项:指定如何放置列标题,以及如何放置选项表达式有左对齐、居中对齐和右对齐三种方式。 请注意这个对齐方法只影响列标题,不影响列数据的对齐方式Null可选:指定如果列中的数据为空,如何显示数据。

例如,在显示奖励信息时,在没有奖励情况下,也可以显示为0columnbonusnull 0

SQL selectename,sal FROM emp WHEREempno=7902;数据分组显示

BREAK命令:作为对指定列进行分组的基准,将随机数定义为整数根据分组语法: BREAK ON列名选项

参数:列名是指定作为分组依据的列,具有以下选项• skip行数否duplicates

例如,查找工资超过2000的员工,并按部门分组显示能表示出来

• SQLbreak on deptno skip 1 nodup• SQLSELECT deptno,ename,sal FROM emp WHEREsal 2000订单依据深度统计列

报告的统计包括水平和垂直统计。水平统计计算一行中若干列的值垂直统计信息是指计算报表中特定列的值COMPUTE命令:统计报告中的数据语法: COMPUTE函数label标签文本of列名on列名参数说明:

函数指定对数据进行什么样的统计

• label指定在计算出的数据之前显示字符串of指定计算哪列的数据on指定根据哪些列对数据进行分组

例如,要分别合计各部门员工的工资,有以下命令

sqlbreakondeptnoskippagenodup

sqlcomputesumlabel合计of sal on deptno设定报告的标题TTITLE :设计报表标题页眉显示在报表每页的顶部执行格式:

t title on :打开或关闭头部标题的显示。 默认设置为打开。• ttitle标头信息:设计标头信息,语法格式如下。t title format显示格式显示位置信息参数说明:显示位置可以是中心、左、右

显示的信息指定文本、SQL.LNO、SQL.PNO。SQL.RELEASE和SQL.USER• ttitle :获取当前标题设置信息。BTITLE :设计报告的末尾标题。 末尾标题是报表每页的底部例如,可以设计显示在中间的标题,以将命令格式ttitle center公司员工工资统计表保存和打印结果

SPOOL命令:用于保存一个或多个SQL语句的输出信息发送到操作系统文件或发送到打印机进行打印语法如下。

spool file _ name [ create ]|[ replace ]|[ append ]|off|out参数说明:

file _ name [.txt ]保存:查询结果集的路径和文件名。 缺省扩展名通常为. lst或. lis。 如果将系统文件指定为/dev/null and /dev/stderr,则不添加扩展名。停止关闭:假脱机。out :停止spool并将文件输出到打印机等终端设备。

create :创建具有指定文件名的新文件; 如果指定的文件存在,则报告文件中存在错误replace :如果指定的文件存在,则复盖并替换; 如果指定的文件不存在,则为、replace是假脱机的默认选项。append :将内容添加到指定的文件名; 如果指定的文件不存在,请创建。SQL spool/app/Oracle/data/employees.txtSQL select * from Scott.EMP;sqlspooloff;其他一般命令

DESCRIBE命令:显示任意数据库对象的结构信息例如,SQLDESCRIBE DEPT

STORE命令:当前SQL*Plus会话中所有环境变量的设置保存在操作系统文件中,可以根据需要使用恢复SQL*Plus环境语法格式:

storesetfilename [ create|replace|append ]例如:

• SQLSTORE SET mysqlplus.sql• Created file mysqlplus.sqlPASSWORD命令:更改用户密码HELP命令:显示SQL*Plus命令的帮助信息语法格式: HELP命令

例如,使用help index命令可以显示SQL*Plus中可用的所有命令的列表或help显示describedescribe命令的功能和选项CLEAR SCREEN命令:清除屏幕上的所有内容总结熟悉SQL*Plus的启动和退出方法

关于SQL*Plus命令、SQL语句和PL/SQL过程序与序的区别

掌握SQL*Plus管理功能中的连接命令、编辑命令命令、文件操作命令、交互命令、SQL*Plus的设定环境、查询结果格式等命令

随机看看

NEW ARTICLE

标签

Tag