《第5章--SQLPlus基础课件.ppt》由会员分享,可在线阅读,更多相关《第5章--SQLPlus基础课件.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础第第5章章 SQL*Plus基础基础本章概述本章要点教学过程1Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础本章概述本章概述lSQL*Plus可以作为编写可以作为编写SQL和和PL/SQL脚本的接脚本的接口。使用口。使用SQL*Plus可以执行各种可以执行各种SQL语句和语句和PL/SQL语句。具体地说,语句。具体地说,SQL*Plus可以描述表可以描述表的结构;可以编辑输入的各种的结构;可以编辑输入的各种SQL和和PL/SQL语句;语句;可以执行输入的可以执行输入的SQL
2、和和PL/SQL语句;可以执行各语句;可以执行各种种SQL*Plus命令;可以格式化命令;可以格式化SQL和和PL/SQL语语句的输出结果等。但是,句的输出结果等。但是,SQL*Plus不能直接操纵不能直接操纵数据库中的数据。数据库中的数据。l本章将全面介绍本章将全面介绍SQL*Plus的基础知识。的基础知识。2Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础本章要点本章要点l启动启动SQL*Plus并设置其运行环境并设置其运行环境l格式化输出结果格式化输出结果l执行各种执行各种SQL*Plus命令命令l使用使用help命令命令l使用使用SQL*Plus缓冲
3、区缓冲区l执行脚本执行脚本3Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式化查询结果格式化查询结果5.3 使用使用SQL*Plus命令命令 5.4 使用使用SQL*Plus缓冲区缓冲区 5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能4Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础5.1 启动和设置
4、启动和设置SQL*Plusl在在Oracle Database 10g系统中,可以使用系统中,可以使用两种方式启动两种方式启动SQL*Plus:一种是命令行模式一种是命令行模式一种是一种是GUI方式方式l启动启动SQL*Plus之后,还可以设置其运行环之后,还可以设置其运行环境。下面详细介绍这些内容。境。下面详细介绍这些内容。6Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础启动启动SQL*Plusl为了从命令行中启动为了从命令行中启动SQL*Plus,可以从,可以从DOS中中输入输入sqlplus命令命令 l也可以使用也可以使用GUI工具启动工具启动SQL
5、*Plus。l在使用在使用SQL*Plus执行查询操作时,经常会遇到查执行查询操作时,经常会遇到查询结果的显示格式非常混乱,就像如图询结果的显示格式非常混乱,就像如图5-3所示的所示的查询结果。遇到这种问题时,建议使用以下查询结果。遇到这种问题时,建议使用以下3种方种方法来解决:法来解决:(1)忍受它。忍受它。(2)查询少量的列。查询少量的列。(3)格式化查询结果。格式化查询结果。7Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础设置设置SQL*Plus运行环境运行环境 8Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础O
6、racle Database 10g基础教程(第二版)第5章 SQL*Plus基础5.2 格式化查询结果格式化查询结果lSQL*Plus提供了大量用于格式化结果集的命令。这些命提供了大量用于格式化结果集的命令。这些命令包括令包括column、pause、pagesize、linesize、feedback、numformat、long等。需要注意的是,等。需要注意的是,SQL*Plus忽略任何由忽略任何由remark或或rem开头的行内容,因此开头的行内容,因此该命令可以作为注释命令使用。本节将详细描述如何使用该命令可以作为注释命令使用。本节将详细描述如何使用这些命令执行格式化查询结果。这些命
7、令执行格式化查询结果。l需要注意的是,在使用格式化命令时,应该遵循下面的一需要注意的是,在使用格式化命令时,应该遵循下面的一些规则:些规则:格式化命令设置之后,将会一直起作用,直到该会话结束或下一格式化命令设置之后,将会一直起作用,直到该会话结束或下一个格式化命令的设置;个格式化命令的设置;每一次报表结束时,重新设置每一次报表结束时,重新设置SQL*Plus为默认值;为默认值;如果为某个列指定了别名,必须引用该别名,而不能使用列名。如果为某个列指定了别名,必须引用该别名,而不能使用列名。10Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础column lco
8、lumn命令用来控制某个列的显示格式,命令用来控制某个列的显示格式,其详细语法格式如下:其详细语法格式如下:column column_name|column_aliasoptionl在上面的语法中,可用的在上面的语法中,可用的option选项如表选项如表5-2所示。所示。11Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础pause l不同的查询语句可以返回不同的结果。有些查询不同的查询语句可以返回不同的结果。有些查询语句可能会返回成千上万行数据。当语句可能会返回成千上万行
9、数据。当SQL*Plus输输出数据时,速度非常快,用户的眼睛很难跟上这出数据时,速度非常快,用户的眼睛很难跟上这种速度。如果查询结果所包含的数据超过用户屏种速度。如果查询结果所包含的数据超过用户屏幕边界,这时就需要在屏幕中进行一次缓冲,存幕边界,这时就需要在屏幕中进行一次缓冲,存储那些滚动到屏幕以外的数据。用户需要通过上储那些滚动到屏幕以外的数据。用户需要通过上下滚动来查看查询结果。下滚动来查看查询结果。l这就是这就是pause命令的用武之地。使用该命令,可命令的用武之地。使用该命令,可以通知以通知SQL*Plus在一页之后停止滚动屏幕上输出在一页之后停止滚动屏幕上输出的数据。的数据。13Or
10、acle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础linesize llinesize命令用于设置一行数据可以容纳的字符数命令用于设置一行数据可以容纳的字符数量。量。linesize的默认值为的默认值为80。该默认设置是很低。该默认设置是很低效的,将会造成的后果是:对于表中的一行数据,效的,将会造成的后果是:对于表中的一行数据,在屏幕上以多行数据显示。在屏幕上以多行数据显示。l在如图在如图5-9所示的实例中,首先使用所示的实例中,首先使用show命令查命令查看看linesize的当
11、前设置,然后检索的当前设置,然后检索emp表中的数据表中的数据。由于宽度的限制,表中的一行数据在屏幕上以。由于宽度的限制,表中的一行数据在屏幕上以两行的方式显示,这时,数据显示格式比较乱,两行的方式显示,这时,数据显示格式比较乱,数据的可读性也就比较差。数据的可读性也就比较差。15Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础feedback lfeedback命令通知命令通知SQL*Plus在查询结果集在查询结果集的末尾输出一行,以便指出查询中返回的的末尾输出一行,以便指出查询中返回的数据行数量。数据行数量。feedback的设置会指出,为的设置会指出,
12、为了让了让SQL*Plus输出消息,必须在查询结果输出消息,必须在查询结果中返回数据行的数量。中返回数据行的数量。l在默认情况下,在默认情况下,feedback被设置为被设置为on,为,为了让它运行而必须返回的数据行的数量是了让它运行而必须返回的数据行的数量是6或更多。或更多。16Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础long llong的默认值为的默认值为80。l如果用户要查询具有如果用户要查询具有long列的表或视图,列的表或视图,那么就只会显示这个特定列的前那
13、么就只会显示这个特定列的前80个字符。个字符。l如果设置如果设置long为更大的值,那么就可以显为更大的值,那么就可以显示这个列中的更多数据。示这个列中的更多数据。18Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式化查询结果格式化查询结果5.3 使用使用SQL*Plus命令命令 5.4 使用使用SQL*Plus缓冲区缓冲区 5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能19Oracle Database 10g基础教
14、程(第二版)第5章 SQL*Plus基础5.3 使用使用SQL*Plus命令命令l除了上一节介绍的除了上一节介绍的SQL*Plus格式化查询结格式化查询结果的命令之外,果的命令之外,SQL*Plus还提供了许多可还提供了许多可以定制该工具行为的工具。以定制该工具行为的工具。l这些工具包括这些工具包括describe、prompt、替换变、替换变量和量和show等。等。l下面介绍如何使用这些命令。下面介绍如何使用这些命令。20Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础describe l在在SQL*Plus的许多命令中,用户使用得最为频繁的许多命令中,用
15、户使用得最为频繁的命令可能是的命令可能是describe命令。命令。describe命令可以命令可以返回数据库中所存储的对象的描述。对于表、视返回数据库中所存储的对象的描述。对于表、视图等对象来说,图等对象来说,describe命令可以列出其各个列命令可以列出其各个列的名称以及各个列的属性。除此之外,的名称以及各个列的属性。除此之外,describe还会输出过程、函数以及程序包的规范。还会输出过程、函数以及程序包的规范。ldescribe命令的语法格式如下:命令的语法格式如下:describe schema.objectconnect_identifierl用户既可以使用用户既可以使用desc
16、ribe命令,也可以使用缩略命令,也可以使用缩略语语desc。21Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础prompt lprompt命令会在屏幕上输出一行数据。这命令会在屏幕上输出一行数据。这种输出方式,非常有助于在存储的脚本文种输出方式,非常有助于在存储的脚本文件中向用户传递相应的信息。件中向用户传递相应的信息。l例如,程序员编写了一个查询表空间信息例如,程序员编写了一个查询表空间信息的语句,并且希望为用户提示一些描述信的语句,并且希望为用户提示一些描述信息,这时就可以使用息,这时就可以使用prompt命令输出这些命令输出这些描述性信息。描述性信
17、息。22Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础&替换变量替换变量 l在在select语句中,如果在某个变量前面使用了语句中,如果在某个变量前面使用了&符符号,那么表示该变量是一个替换变量。在执行号,那么表示该变量是一个替换变量。在执行select语句的过程中,系统会提示用户为该变量语句的过程中,系统会提示用户为该变量提供一个具体的数据。提供一个具体的数据。l在如图在如图5-20所示的实例中,所示的实例中,where子句中有一个子句中有一个变量变量&amount。该变
18、量的前面使用了。该变量的前面使用了&符号,因此符号,因此它是一个替换变量。当执行该它是一个替换变量。当执行该select语句时,语句时,SQL*Plus提示用户为该变量输入一个具体的数据。提示用户为该变量输入一个具体的数据。这里输入的薪金是这里输入的薪金是1580。最后,执行。最后,执行select语句。语句。24Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础&替换变量替换变量 l在在select语句中,如果需要重新使用某个变语句中,如果需要重新使用某个变量并且不希望重新提示输入该值,那么可量并且不希望重新提示输入该值,那么可以使用以使用&替换变量。替换变
19、量。l为了避免为同一个变量提供两个不同的值,为了避免为同一个变量提供两个不同的值,且使得系统为同一个变量值提示一次信息,且使得系统为同一个变量值提示一次信息,那么可以使用那么可以使用&符号。符号。25Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础define命令命令 l想要在想要在SQL语句中定义变量,可以使用语句中定义变量,可以使用define和和accept命令。命令。ldefine命令用于创建一个数据类型为命令用于创建一个数据类型为char的用户自定义变量。的用户自定义变量。l相反地,使用相反地,使用undefine命令可以清除所定命令可以清除所定义
20、的变量。义的变量。ldefine命令的语法格式如表命令的语法格式如表5-5所示所示 26Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础show l使用使用show命令可以搜索更多的信息。命令可以搜索更多的信息。l这些信息包括这些信息包括SQL*Plus的环境设置的环境设置PL/SQL代码代码init.ora参数参数28Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式
21、化查询结果格式化查询结果5.3 使用使用SQL*Plus命令命令 5.4 使用使用SQL*Plus缓冲区缓冲区 5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能29Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础SQL*Plus提供的编辑命令提供的编辑命令 31Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础32Oracle Database 10g基础教程(第二版)第5章
22、SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式化查询结果格式化查询结果5.3 使用使用SQL*Plus命令命令 5.4 使用使用SQL*Plus缓冲区缓冲区 5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能33Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础5.5 内置的内置的SQL*Plus Help命令命令l通过使用通过使用help index命令,可以查看命令,可以查看SQL*Plus提供的一些命令清单。提供的一些命令清单。l如果希望查看某
23、一个命令的详细使用方法,如果希望查看某一个命令的详细使用方法,例如例如column命令,那么执行命令,那么执行help column命令即可。命令即可。SQL*Plus帮助系统可以向用户帮助系统可以向用户提供的信息包括命令的标题、命令的文本、提供的信息包括命令的标题、命令的文本、命令的缩写形式、命令中使用的强制参数命令的缩写形式、命令中使用的强制参数和可选参数等。和可选参数等。34Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式化查询结果格式化查询结果5.3 使用使用SQL*Plus命
24、令命令 5.4 使用使用SQL*Plus缓冲区缓冲区 5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能35Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础5.6 脚本脚本l用户没有必要在每次使用时都编写常用的用户没有必要在每次使用时都编写常用的SQL语语句和句和PL/SQL程序块,而是可以将它们保存在被称程序块,而是可以将它们保存在被称为脚本的文件中。这些脚本文件为那些反复执行为脚本的文件中。这些脚本文件为那些反复执行的各种任务而设计。的各种任务而设计。l在在SQL*Plus工具中,可以使用工
25、具中,可以使用start和和命令来调命令来调用脚本文件,并且可以在命令行中传递脚本需要用脚本文件,并且可以在命令行中传递脚本需要使用的任何参数。使用的任何参数。l当调用脚本时,如果该脚本文件不在用户的当前当调用脚本时,如果该脚本文件不在用户的当前工作目录中,用户必须使用指定的目录名称。工作目录中,用户必须使用指定的目录名称。36Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式化查询结果格式化查询结果5.3 使用使用SQL*Plus命令命令 5.4 使用使用SQL*Plus缓冲区缓冲区
26、5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能37Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础5.7 SQL*Plus增强的功能增强的功能l在在Oracle Database 10g系统中,系统中,SQL*Plus不仅不仅没有被抛弃,而且得到了许多增强。没有被抛弃,而且得到了许多增强。l这些增强的功能如下:这些增强的功能如下:spool命令得到了增强;命令得到了增强;新增了新增了3个个define变量;变量;describe命令得到了增强;命令得到了增强;SQL*Plus的配置文件新增了
27、一些变化;的配置文件新增了一些变化;可以对可以对SQL提示符进行变量替换;提示符进行变量替换;新增了兼容性命令;新增了兼容性命令;支持在文件名和路径中使用空格。支持在文件名和路径中使用空格。38Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础增强的增强的spool命令命令 lSQL*Plus中的中的spool命令得到了增强,用命令得到了增强,用户可以使用户可以使用spool append命令把假脱机内命令把假脱机内容附加在一个已经存到的假脱机文件中。容附加在一个已经存到的假脱机文件中。l在如图在如图5-32所示的实例中,首先使用所示的实例中,首先使用spoo
28、l命令生成命令生成output文件,然后检索文件,然后检索emp表的表的内容,接着关闭假脱机。然后,使用带有内容,接着关闭假脱机。然后,使用带有append参数的参数的spool命令重新打开命令重新打开output文件,把文件,把select语句的结果附加到语句的结果附加到output文文件中。件中。39Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础新增的新增的define变量变量 l在在Oracle Database 10g系统中,系统中,SQL*Plus新增新增了了3个个define变量,即变量,即_date、_privilege和和_user变量。变
29、量。_date变量是一个动态变量,可以提供基于当前变量是一个动态变量,可以提供基于当前nls_date_format设置的日期。设置的日期。_privilege变量包含了当前用户的权限,变量包含了当前用户的权限,_user变量包含了连接到当前数据库的用户名称。变量包含了连接到当前数据库的用户名称。l可以使用可以使用define命令查看这些变量的当前值。命令查看这些变量的当前值。40Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础其他增强的功能其他增强的功能 l以前,在数据库中使用规则时,如果用户需要查看这些规则的信息,以前,在数据库中使用规则时,如果用户需要
30、查看这些规则的信息,必须使用到一些数据字典视图。现在,直接使用必须使用到一些数据字典视图。现在,直接使用describe命令即可快命令即可快速查看这些规则的定义信息。在速查看这些规则的定义信息。在Oracle Database 10g系统中,使用系统中,使用SQL*Plus的的describe命令可以查看规则、规则集和规则评估信息。命令可以查看规则、规则集和规则评估信息。l用户可以使用配置文件定制用户可以使用配置文件定制SQL*Plus的环境。的环境。Oracle系统为每一个系统为每一个用户提供了用户提供了glogin.sql站点配置文件。默认情况下,该文件位于站点配置文件。默认情况下,该文件
31、位于$ORACLE_HOME/sqlplus/admin目录中。在目录中。在Oracle Database 10g系统之前,只有当启动系统之前,只有当启动SQL*Plus时,配置文件才可以刷新。现在,时,配置文件才可以刷新。现在,只要数据库连接成功,配置文件就可以刷新。这样,配置文件的内容只要数据库连接成功,配置文件就可以刷新。这样,配置文件的内容尽可能实时地显示出来。尽可能实时地显示出来。l除此之外,还有许多增强的内容。可以使用除此之外,还有许多增强的内容。可以使用set sqlprompt命令设置命令设置SQL的提示符。可以在启动的提示符。可以在启动sqlplus时,使用时,使用-c参数设
32、置参数设置SQL*Plus客客户端的兼容性。可以在文件名和路径名中包含空格,例如户端的兼容性。可以在文件名和路径名中包含空格,例如spool output 。还可以使用。还可以使用show recyclebin显示回收站中的内容。显示回收站中的内容。41Oracle Database 10g基础教程(第二版)第5章 SQL*Plus基础教学过程教学过程5.1 启动和设置启动和设置SQL*Plus 5.2 格式化查询结果格式化查询结果5.3 使用使用SQL*Plus命令命令 5.4 使用使用SQL*Plus缓冲区缓冲区 5.5 内置的内置的SQL*Plus Help命令命令5.6 脚本脚本5.7 SQL*Plus增强的功能增强的功能42