《T05-SQL-Plus-Worksheet工具的使用PPT优秀课件》由会员分享,可在线阅读,更多相关《T05-SQL-Plus-Worksheet工具的使用PPT优秀课件(33页珍藏版)》请在金锄头文库上搜索。
1、T5 SQL*PlusT5 SQL*Plus Worksheet Worksheet工具工具工具工具1回顾回顾SQL*Plus 介绍介绍SQL*Plus的两种登录方式的两种登录方式SQL*Plus中常用的命令中常用的命令SQL*Plus环境变量设置环境变量设置2目标目标环境变量的使用环境变量的使用输出格式控制输出格式控制SQL*Plus Worksheet工具工具创建用户创建用户在在SQL*Plus中对用户权限的限制中对用户权限的限制使用使用SQL*Plus的的COPY命令命令3环境变量的使用环境变量的使用SQL*Plus的环境参数可以方便的规划我们的的环境参数可以方便的规划我们的SQL查询结
2、查询结果和操作。果和操作。SQL*Plus可以通过菜单和可以通过菜单和SET命令两种方式来设置参数。命令两种方式来设置参数。通过通过show all显示当前所有环境变量的值显示当前所有环境变量的值4环境变量的使用环境变量的使用参数作用Feedback (feed)是否显示出查询纪录统计Heading (hea)是否显示统计表报的列标题Linsize (lin)设置sql*plus中每行显示的最多字符数Long设置显示long,clob和nclob数据类型和拷贝long类型值的最大字节宽度,最大为2G字节Newpage (newp)设置报表每页首行标题的空行数,如果为none, 报表页之间不留空
3、行NULL设置查询结果中值为null时的替换值Numformat (numf)设置数字值的默认显示格式NUMWIDTH (num)设置数字值的默认显示宽度PAGESIZE (pages)设置每页显示的行数,设置为0时,将不显示标题、每行前导空行、分页行等格式信息HEADSEP (heads)定义列标题分隔符号,默认为“|”TIME (ti)控制是否在提示符sql前显示系统当前时间5通过通过help set 来显示所有的帮助格式来显示所有的帮助格式 FEEDBACK 6|n|OFF|ON set feed 0 set feed offset numf $999.99select title ,p
4、rice from book;环境变量的使用环境变量的使用6在查询的时候可以使用在查询的时候可以使用COL命令指定当前查询中的格式,命令指定当前查询中的格式,其语法为:其语法为: COLUMN column | expr option. column | expr表示印象的列名或表达式表示印象的列名或表达式Option表示可选项表示可选项输出格式控制输出格式控制7输出格式控制输出格式控制在查询的时候可以使用在查询的时候可以使用COL命令指定当前查询中的格式;命令指定当前查询中的格式;其语法格式为:其语法格式为: COLUMN column | expr option. ALIAS alias
5、CLEAR FOLD_AFTER FOLD_BEFORE FORMAT format HEADING text JUSTIFY LEFT | CENTER | CENTRE | RIGHT LIKE expr | alias NEWLINE NEW_VALUE variable NOPRINT | PRINT NULL text OLD_VALUE variable ON|OFF WRAPPED | WORD_WRAPPED | TRUNCATED81)改变缺省的列标题改变缺省的列标题COLUMN column_name HEADING column_heading输出格式控制输出格式控制92
6、)将列名将列名title改为新列名改为新列名书籍信息书籍信息|书名书名并将新列名放在两行上:并将新列名放在两行上: 输出格式控制输出格式控制103)改变列的显示长度改变列的显示长度 输出格式控制输出格式控制114)设置列标题的对齐方式设置列标题的对齐方式 JUSTIFY LEFT|CENTER|CENTRE|RIGHT对于对于NUMBER型的列,列标题缺省在右边型的列,列标题缺省在右边其它类型的列标题缺省在左边其它类型的列标题缺省在左边 输出格式控制输出格式控制125)不让某一列显示在屏幕上不让某一列显示在屏幕上NOPRINT|PRINT 输出格式控制输出格式控制136)格式化)格式化NUMB
7、ER类型列的显示:类型列的显示:Col colnum_name format $999.99输出格式控制输出格式控制147)显示列值时,用指定的文本代替显示列值时,用指定的文本代替NULL值值 col author null 无名士无名士 select no,title,author from book;8)屏蔽掉一个列中显示的相同的值)屏蔽掉一个列中显示的相同的值 Break on break_column 显示设置的屏蔽列显示设置的屏蔽列Break删除设置的屏蔽列删除设置的屏蔽列Clear Breaks输出格式控制输出格式控制15输出格式控制输出格式控制16SQL*Plus工作单的使用工作
8、单的使用SQL*Plus工作单的功能完全兼容工作单的功能完全兼容SQL*Plus,但页面更友,但页面更友好,更容易操作好,更容易操作17创建用户创建用户Oracle是一个多用户的数据库系统,每个试图使用是一个多用户的数据库系统,每个试图使用Oracle的用户都必须得到的用户都必须得到一个合法的用户名和口令。一个合法的用户名和口令。用户也叫方案,是一组逻辑对象的所有者;与此相关的信息有:用户也叫方案,是一组逻辑对象的所有者;与此相关的信息有:验证方法验证方法:连接数据库的合法密码:连接数据库的合法密码默认和临时表空间默认和临时表空间:当用户创建对象时,如果没有特殊指定另一个表空间,将使:当用户创
9、建对象时,如果没有特殊指定另一个表空间,将使用默认表空间。临时表空间用来创建临时段。用默认表空间。临时表空间用来创建临时段。空间分配:空间分配:在每个表空间当中,必须指定给用户一个空间配额,以便创建对象。在每个表空间当中,必须指定给用户一个空间配额,以便创建对象。18语法:语法:Create user 用户名用户名 Identified by 密码密码 default tablespace 默认表空间名称默认表空间名称 quota nk on 表空间名字表空间名字 password expire Account lock | unlock参数说明:参数说明:quota nk 限制用户表空间的数
10、量,单位为限制用户表空间的数量,单位为KB或或MB,如为,如为unlimited说明使用表空间不受限说明使用表空间不受限制制password expire 说明用户的密码已经到期失效,登陆的时候要强制用户修改密码说明用户的密码已经到期失效,登陆的时候要强制用户修改密码Account指锁定或解除用户帐号指锁定或解除用户帐号创建用户创建用户19创建创建yf用户用户 create user yf identified by yf default tablespace users quota 5M on users password expire account unlock;给当前用户赋权限给当前用
11、户赋权限grant alter any table to yf;grant create any table to yf;grant select any table to yf;grant connect to yf;创建用户创建用户20Oracle为数据管理员提供了一个工具,让他们能够禁止在为数据管理员提供了一个工具,让他们能够禁止在SQL*Plus环境下指环境下指定的定的SQL和和SQL*Plus命令的执行,它基于单个用户实现。事实上,这个工具命令的执行,它基于单个用户实现。事实上,这个工具是一个表是一个表PRODUCT_USER_PROFILE,由用户,由用户SYSTEM拥有。拥有。C
12、:oracleora90sqlplusadminpupbld.sql在在SQL*Plus中对用户权限的限制中对用户权限的限制21在在SQL*Plus中对用户权限的限制中对用户权限的限制22禁用一个禁用一个SQL命令命令要禁止某给定用户使用某个要禁止某给定用户使用某个SQL或或SQL*Plus命令,命令, SYSTEM用户必须插入与表用户必须插入与表所示列和值匹配的一条记录所示列和值匹配的一条记录在在SQL*Plus中对用户权限的限制中对用户权限的限制23例如,要禁止用户例如,要禁止用户yf从从SQL*Plus访问操作系统,需要作为访问操作系统,需要作为SYSTEM用户登用户登录到录到SQL*P
13、lus并执行并执行以下以下S Q L语句。语句。当用户访问当用户访问SQL*Plus时,时,SQL*Plus从从PRODUCT_USER_PROFILE表读表读取用户限制,并在用户对话期间强制实施这些限制取用户限制,并在用户对话期间强制实施这些限制Insert into product_user_profile values(SQL*PLUS,yf,SELECT,null,null,DISABLED,NULL,NULL);在在SQL*Plus中对用户权限的限制中对用户权限的限制24重新允许使用一个重新允许使用一个SQL命令命令要重新允许使用一个要重新允许使用一个SQL命令,需要删除含有限制的记
14、录命令,需要删除含有限制的记录DELETE FROM PRODUCT_USER_PROFIEL WHERE USERID=yf and attribute=SELECT在在SQL*Plus中对用户权限的限制中对用户权限的限制25可以使用可以使用PRODUCT_USER_PROFILE表禁止下面的命令表禁止下面的命令COPY EDITEXECUTEEXITGETH O S T(或者操作系统(或者操作系统H O S T的别名,例如的别名,例如U N I X上的上的!或或V M S上的上的$)QUITPASSWORDRUNSAVESETSPOOLSTART在在SQL*Plus中对用户权限的限制中对用
15、户权限的限制26下面的下面的S Q L命令可以被禁止:命令可以被禁止:ALTERANALYZEAUDITCONNECTCREATEDELETEDROPGRANTINSERTLOCKNOAUDITRENAMEREVOKESELECTSET ROLESET TRANSACTIONTRUNCATEUPDATE在在SQL*Plus中对用户权限的限制中对用户权限的限制27COPY命令可以用来实现几个功能:命令可以用来实现几个功能:从一个本地数据库将一个或多个表或整个模式拷贝到一个远程数据库或另外一个本地数据库。从一个本地数据库将一个或多个表或整个模式拷贝到一个远程数据库或另外一个本地数据库。这可以用于从
16、一个数据库将整个模式移动到另外一个数据库,而不需要使用导出这可以用于从一个数据库将整个模式移动到另外一个数据库,而不需要使用导出/导入工具,导入工具,当导出大于操作系统文件限制的文件时这尤其有用。当导出大于操作系统文件限制的文件时这尤其有用。将一个表中指定的记录(基于查询)拷贝到远程数据库或本地数据库的其他表中。将一个表中指定的记录(基于查询)拷贝到远程数据库或本地数据库的其他表中。将包含将包含L O N G类型数据列的表的内容拷贝到其他表。因为类型数据列的表的内容拷贝到其他表。因为L O N G类型的列不能用于类型的列不能用于S E L E C T语句中,所以这是解决此问题的唯一方法。语句中
17、,所以这是解决此问题的唯一方法。从一个从一个O r a c l e数据库向一个非数据库向一个非O r a c l e数据库拷贝表。数据库拷贝表。使用使用SQL*Plus的的COPY命令命令28C O P Y命令的语法为:命令的语法为:copy from username/passworddatabase_sid | to username /passworddatabase_sid | from username /passworddatabase_sid to username /passworddatabase_sid append | create | insert | replace
18、destination_table (column,column.) using query使用使用SQL*Plus的的COPY命令命令29username/password 代表你希望拷出代表你希望拷出/拷入的拷入的oracle用户名和口令。用户名和口令。在在from子句中,子句中,username/password 标识数据的源;标识数据的源;在在TO子句中子句中username/password 标识数据的目的地。标识数据的目的地。database_sid 是数据库链接名、是数据库链接名、Net服务名。服务名。destination_table(目标表目标表)你希望创建的表或向其中添加数
19、据的表,你希望创建的表或向其中添加数据的表,(column,column)指示指示了目标表中的列名。了目标表中的列名。如果指定列,列的数目必须与查询选择的列的数目相同。如果指定列,列的数目必须与查询选择的列的数目相同。如果没有指定任何列,如果如果没有指定任何列,如果COPY命令创建目标表,被拷贝的列在目标表中将具有与源表中的列相同的名字。命令创建目标表,被拷贝的列在目标表中将具有与源表中的列相同的名字。USING query 参数指定一个提取参数指定一个提取COPY命令拷贝的行和列的命令拷贝的行和列的SELECT语句。语句。使用使用SQL*Plus的的COPY命令命令30几个参数用于控制几个参
20、数用于控制COPY命令如何从一个表向另一个表中拷贝数据命令如何从一个表向另一个表中拷贝数据,些参数如下所示些参数如下所示:APPEND :向指定的表中追加纪录。向指定的表中追加纪录。如果目标表存在,如果目标表存在,APPEND将查询出的记录插入到目标表。将查询出的记录插入到目标表。如果目标表不存在,如果目标表不存在,COPY命令创建该表,在加纪录命令创建该表,在加纪录CREATE :首先创建目标表,然后向目标表中插入取自查询的记录。首先创建目标表,然后向目标表中插入取自查询的记录。如果目标表已经存在,如果目标表已经存在,COPY命令返回一个错误。命令返回一个错误。INSERT :将取自查询的记
21、录插入目标表。如果目标表不存在,将取自查询的记录插入目标表。如果目标表不存在,COPY命令返回一个错误。命令返回一个错误。当使用当使用INSERT命令时,命令时,USING查询必须为目标表中的每列选择一列。查询必须为目标表中的每列选择一列。REPLACE: 使用查询提取的记录替换目标表及其内容。使用查询提取的记录替换目标表及其内容。如果目标表存在,如果目标表存在,COPY删除它并用含有拷贝数据的表替换它。删除它并用含有拷贝数据的表替换它。如果目标表不存在,如果目标表不存在,COPY命令创建它。命令创建它。使用使用SQL*Plus的的COPY命令命令31有三个有三个SQL*Plus SET变量控
22、制变量控制COPY命令的行为:命令的行为:LONG:决定你所拷贝的:决定你所拷贝的LONG类型列的长度。类型列的长度。如果如果LONG类型列包含的数据长度大于类型列包含的数据长度大于LONG变量的值,变量的值,COPY命令将截断数据。命令将截断数据。COPYCOMMIT:在缺省情况下,:在缺省情况下,SQL*Plus在每个成功执行的在每个成功执行的COPY命令后面执命令后面执行一次提交。行一次提交。如果设置如果设置COPYCOMMIT为一个正整型值为一个正整型值n,SQL*Plu 将在每拷贝将在每拷贝n批记录后执行一次提批记录后执行一次提交。交。ARRAYSIZE:决定批操作的大小。:决定批操作的大小。使用使用SQL*Plus的的COPY命令命令32总结总结环境变量的使用环境变量的使用输出格式控制输出格式控制SQL*Plus Worksheet工具工具创建用户创建用户在在SQL*Plus中对用户权限的限制中对用户权限的限制使用使用SQL*Plus的的COPY命令命令33