1、2018/7/7,1,SQL*PLUS,鲁东大学计算机科学与技术学院李秀芳,2018/7/7,主要内容,SQL*Plus概述启动SQL*Plus以及环境变量设置SQL*Plus命令使用help命令使用SQL*Plus缓冲区执行脚本,2018/7/7,SQL*PLUS概述,简介 SQL*PLUS是Oracle公司提供的一个工具程序,可以用于运行SQL语句和PL/SQL程序块、处理数据、生成报表、控制屏幕显示和打印输出。从Oracle 8i开始,SQL*PLUS还可以用于执行数据库管理操作,包括启动数据库、关闭数据库、备份和恢复数据库等。SQL*Plus不能直接操纵数据库中的数据。,2018/7/
2、7,SQL*PLUS概述(续),SQL*PLUS主要功能插入、修改、删除、查询以及执行SQL、PLSQL块查询结果的格式化、运算处理、保存、打印以及输出web格式显示任何一个表的字段定义连接数据库,定义变量运行存储在数据库中的子程序或包启动、停止数据库,2018/7/7,主要内容,SQL*Plus概述启动SQL*Plus以及环境变量设置SQL*Plus命令使用help命令使用SQL*Plus缓冲区执行脚本,2018/7/7,启动SQL*PLUS,在Windows环境下可以使用两种方式运行SQL*PLUS使用命令行运行开始-运行中键入sqlplus 用户名/密码开始附件”c:命令提示符”快捷方式
3、,在属性中修改D:oracleproduct10.2.0client_1BINsqlplusw.exe scott/scottorcl窗口方式运行,2018/7/7,定制环境参数,菜单方式命令方式,SET LINESIZE 200SET PAGESIZE 2000,2018/7/7,主要内容,SQL*Plus概述启动SQL*Plus以及环境变量设置SQL*Plus命令使用help命令使用SQL*Plus缓冲区执行脚本,2018/7/7,SQL*Plus命令,SQL*PLus连接命令SQL*PLus格式化命令SQL*PLus缓冲区及编辑命令SQL*PLus文件操纵命令SQL*PLus脚本与交互式
4、命令内置的SQL*Plus Help命令,2018/7/7,SQL*Plus命令,AUTOCOMMIT 用于设定是否自动提交DML语句FEEDBACK 用于指定反馈SELECT语句显示行数的最少行数,默认值为6HEADING用于设置是否显示列标题LINESIZE用于设置行宽度,LONG用于设置LONG和LOB类型列的显示长度PAGESIZE 用于设置每页所显示的行数SERVEROUTPUT 用于控制服务器输出NUMFORMAT 用于控制数值数据的显示格式PAUSE 用于控制翻页暂停,2018/7/7,连接命令1,CONNECT(可缩写为CONN),2018/7/7,连接命令2,PASSWORD
5、(可缩写为PASSW),2018/7/7,连接命令3,DISCONNECT(可缩写为DISC)DISCONNET命令仅仅用于断开已经存在的数据连接EXIT和QUITEXIT和QUIT不但会断开数据库连接,还会退出SQL*PLUS,而且在退出SQL*PLUS时还会隐含提交事务,2018/7/7,格式化命令,在使用SQL*Plus执行查询操作时,经常会遇到查询结果的显示格式非常混乱的情况,遇到此种问题时,通常可以使用以下3种方法:忍受它。查询少量的列。格式化查询结果。,2018/7/7,格式化命令,在使用格式化命令时,应该遵循下面的一些规则:格式化命令设置之后,将会一直起作用,直到该会话结束或下一
6、个格式化命令的设置;每一次报表结束时,重新设置SQL*Plus为默认值;如果为某个列指定了别名,必须引用该别名,而不能使用列名。,2018/7/7,格式化命令,COLUMN用于控制列的显示格式TTITLE用于指定页标题BTITLE用于指定页脚注BREAK用于分区显示行结果,并禁止显示重复值,2018/7/7,COLUMN命令1,格式化数字排列小数位添加分组符(999,999,999)插入货币符号($99,990) 其他数字格式码,COLUMN column_name FORMAT format_code,SQL col bytes format 999,999,999 SQL select b
7、ytes from v$datafile; BYTES - 513,802,240,2018/7/7,COLUMN命令2,COLUMN格式化文本文本换行显示格式化列标题显示,COLUMN column_name FORMAT Ann WORD_WRAP,COLUMN column_name HEADING heading_text JUSTIFY LEFT CENTER RIGHT,Sql col deptno heading 编号,2018/7/7,COLUMN命令3,COLUMN关闭格式化,COLUMN column_name OFF,2018/7/7,Ttitle/btitle命令,使用
8、ttitle命令和btitle命令可以设置报表的页眉和页脚。,2018/7/7,Ttitle/btitle命令示例,SQL ttitle center 我的标题 skip 1- left 测试报表 right 页 - format 999 sql.pno skip 2 SQL select * from emp; 我的标题测试报表 页 1 EMPNO ENAME JOB MGR- - - -HIREDATE SAL COMM DEPTNO- - - - 7369 SMITH CLERK 790217-12月-80 800 20 7499 ALLEN SALESMAN 769820-2月 -81
9、 1600 300 30,2018/7/7,使用SQL*Plus缓冲区,SQL*Plus会在缓冲区或存储内存区域中用户最近运行的命令。通过在缓冲区中存储这些命令,使用户就能够重新调用、编辑以及运行那些最近输入的SQL语句。可以使用两种方法修改缓冲区中存储的命令:用户可以将缓冲区中的内容传递给Notepad(Windows系统)编辑器也可以使用SQL*Plus的默认编辑器最经常的是使用由SQL*Plus提供的编辑命令,2018/7/7,编辑命令,LIST用于列出SQL缓冲区的内容,当前行会用*号标识APPEND用于在SQL缓冲区当前行的尾部添加内容CHANGE用于修改SQL缓冲区中当前行的内容D
10、EL用于删除SQL缓冲区的内容,可以删除某行,某几行或所有行,默认情况下会删除当前行INPUT用于在SQL缓冲区的当前行后新增加一行NN用某一数值代替,用于指定SQL缓冲区的当前行,2018/7/7,文件操纵命令,SAVE用于将当前SQL缓冲区的内容保存到SQL脚本GET用于将SQL脚本内容装载到SQL缓冲区START和用于运行SQL脚本用于处理在非当前工作目录下的脚本调用问题EDIT filename用于编辑SQL脚本文件SPOOL用于将SQL*PLUS屏幕内容存放到输出文件,2018/7/7,EDIT d:oraclet.txt,文件操纵命令,练习,spool d:oraclet.txt
11、appendSELECT * FROM emp;SELECT * FROM dept;SPOOL OFF,2018/7/7,脚本,用户没有必要在每次使用时都编写常用的SQL语句和PL/SQL程序块,而是可以将它们保存在被称为脚本的文件中。这些脚本文件为那些反复执行的各种任务而设计。在SQL*Plus工具中,可以使用start和命令来调用脚本文件,并且可以在命令行中传递脚本需要使用的任何参数。当调用脚本时,如果该脚本文件不在用户的当前工作目录中,用户必须使用指定的目录名称。,2018/7/7,交互式命令,& 用于引用替代变量& 用于多次引用替代变量DEFINE 用于定义类型为CHAR的替代变量A
12、CCEPT 用于定义CHAR、NUMBER和DATE类型的替代变量UNDEFINE清除替代变量的定义,PROMPT 用于输出提示信息PAUSE用于暂停脚本执行VARIABLE用于定义绑定变量PRINT 用于输出绑定变量的值,2018/7/7,交互式命令,练习,SQL select * from dept where deptno= 输入 tt 的值: 20原值 1: select * from dept where deptno=&tt新值 1: select * from dept where deptno=20 DEPTNO DNAME LOC- - - 20 RESEARCH DALLA
13、S,2018/7/7,内置的SQL*Plus Help命令,通过使用help index命令,可以查看SQL*Plus提供的一些命令清单。 如果希望查看某一个命令的详细使用方法,例如column命令,那么执行help column命令即可。SQL*Plus帮助系统可以向用户提供的信息包括命令的标题、命令的文本、命令的缩写形式、命令中使用的强制参数和可选参数等。,SQL ? col,2018/7/7,内容小结,SQL*PLUS简介与运行定制环境参数SQL*PLUS连接命令SQL*PLUS格式化命令SQL*PLUS缓冲区及编辑命令SQL*PLUS文件操纵命令SQL*PLUS脚本与交互式命令内置的SQL*Plus Help命令,2018/7/7,