友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第115章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






问与答 



   问  为什么在数据字典中我应该使用表和视图 



   答  使用视图是在数据字典中找到关于你的数据库的信息的最有效的方法                表可以告 



                                                       351 


…………………………………………………………Page 352……………………………………………………………

SQL 21  日自学通(V1。0)                          翻译人  笨猪 



    诉你可以访问什么以及你的权限如何      它也可以帮助你监视其它的数据库事件如用 



    户过程和数据库性能等 



   问  数据字典是怎样创建的 



   答 数据字典是在数据库初始化的时候创建的  在创建数据库的时候 ORACLE 提供了 



    许多的脚本来运行  对于特定的数据库系统目录这些脚本会创建必要的表和视图 



   问  数据字典是怎样更新的 



   答  在进行日常操作时数据字典由关系数据库系统在内部进行更新         当我们改变一个 



表的结构的时候   数据字典也将会做出相应的改变      你不要尝试手工去修改数据字典      这 



可能会导致数据库的崩溃 



   问  我如何才能发现谁对数据库做了些什么 



   答 一般来说  在系统目录中的表和视图可以让你对用户的活动进行审核 



校练场 



   1  在 ORACLE 中  你如何才能知道哪些表和视图是为你所有的 



   2  在数据字典中存储有哪些信息 



   3  你如何才能进行性能统计 



   4  数据库对象都有哪些 



练习 



   假设你管理了一个中小型的数据库系统      你的职责是开发和管理数据库     某人向表中 



插入了大量的数据并收到了一个空间不足的错误信息        你必须断定问题产生的原因     是对 



该用户配额的表空间增加还是你需要增加为表空间分配的磁盘空间          要一步一步地列出你 



需要从数据字典中得到的信息— — 不必给出具体的表和视图的名称 



                                                352 


…………………………………………………………Page 353……………………………………………………………

SQL 21  日自学通(V1。0)                              翻译人 笨猪 



第 17 天     使用 SQL 来生成 SQL 语句 



目标 



在今天你将学习从后台生成更多的 SQL 语句的概念  在今天中你将会明白以下的内容 



    l  从查询中生成 SQL 的好处 



    l  如何从其它的 SQL 语句的输出中生成查询 



    l  如何在 SQL 语句方法中使用数据字典和数据库表 



使用 SQL 来生成 SQL 语句的目的 



   从 SQL 中生成 SQL 语句的意思简而言之就是写一个 SQL 语句 它可以其它形式的 SQL 



语句或命令   到目前为止  你所学所用的 SQL 语句     如对表中数据的操作  或产生一行结 



果  或可以生成一些报告  今天     你将学习写一个可以生成其它查询或 SQL 语句的查询 



   为什么我们需要从查询中生成 SQL 语句呢      最初  这样做的目的是为了简单和有效 



你并不一定需要生成 SQL  语句  但是如果你不这样做你可能会忽视 SQL       的最为强大的特 



性  有许多人甚至根本就不知道有这样的功能存在 



   生成 SQL  语句并不是必须的要求    因为你完全可以手工写并运行全部的 SQL  语句 — 



— 尽管对于特定的工作这是单调和乏味的        可是如果你的工作期限很紧迫的话你可以考虑 



生成 SQL  语句 举例来说   如果你的老板批准了 90  个在市场部工作的人可以访问一些新 



的表的话  而你还想回家去吃晚饭       由于在数据库中的一些用户并不是工作在市场部的 



所以你不能简单地将表的访问权限设为可以公共访问           当你有多个组的用户并且他们的访 



问权限不同的时候  你可能会想用强制性的安全规则 — — 这是一种内建的对用户的访问进 



行控制的方法  在这种情况下     你可以创建一个 SQL 语句来对每一个在市场部工作的人生 



成一个 GRANT 语句  也就是说  它对每一个在市场部工作的人赋予了相同的规则 



   你可以在许多的情况下发现从一个 SQL  语句中生成 SQL  语句的优点       例如  你可能 



要执行一组由许多条相似的 SQL  语句组成的语句组或是你想生成针对数据字典的 DDL 



当从一个 SQL  语句中生成其它的 SQL  语句时   你会经常从你的输出或数据字典或在数据 



库中的计划表中来取得数据      下图给出了这个过程 



                                                    353 


…………………………………………………………Page 354……………………………………………………………

SQL 21  日自学通(V1。0)                                  翻译人  笨猪 



   如你在下图所见  可以对数据库执行一个 SELECT        语句   它输出的结果或是数据字典 



中的内部或是在数据库中应用表的内容 你的语句可以将这些结果嵌入到一个或更多的 SQL 



语句中   如果在你的语句中返回了 100 条记录  那么你就会得到 100 条语句          如果你成功 



地从数据库中生成了这些 SQL  代码      那么你还可以对数据库来应用这些 SQL  语句         它们 



将对数据库执行一系列的查询工作 



   今天剩下来的时间我们主要集中于向你讲解如何从一个 SQL  语句中生成其它的 SQL 



语句的例子    你的大多数的信息将来源于数据字典          所以你应该回想一下你昨天所学习的 



内容  见第 16 天  使用视图从数据字典中获得有用的信息 



注  在今天的例子中我们使用 PERSONAL  ORACLE7     与以往一样  你应该将在今天所讲 



   座的内容与你所使用的数据库解释器的语法结合起来 



几个 SQL*PLUS 命令 



在今天的例子中我们要使用几个新的命令           也就是 SQL*PLUS 命令 — — 针对 PERSONAL 



ORACLE 的用以对输出的格式进行控制的命令           见第 20 天的  SQL*PLUS  这些命令 



也是在 SQL》提示符下运行的  它们也可以在文件中使用 



注  尽管这些命令是针对 PERSONAL  ORACLE7  的  但是在其它的数据库解释器中也有类 



   似的命令   例如  在 Transact…SQL  中就有  参见第 19 天  Transact…SQL 简介 



                                                         354 


…………………………………………………………Page 355……………………………………………………………

SQL 21  日自学通(V1。0)                                            翻译人    笨猪 



SET ECHO ON/OFF 



    当你 set echo on 时  你会在执行的时候看到你的 SQL 语句           set echo off 的意思就是你 



不想在执行的时候看到 SQL 语句 — — 你只想看到输出的结果 



    SET ECHO ' ON | OFF ' 



SET FEEDBACK ON/OFF 



    FEEDBACK 就是你的查询所输入的行数  例如              如果你运行的 SELECT  语句返回 30 



行数据  那么你的 FEEDBACK 将会是 



    30 rows selected 



    SET  FEEDBACK  ON 会显示对行的计数       SET  FEEDBACK  OFF 则在你的结果输出时 



不会对行进行计数 



    SET FEEDBACK ' ON | OFF ' 



SET HEADING ON/OFF 



    HEADING  就是指你的 SELECT      语句的输出结果的头部            储如 LAST_NAME     或 



CUSTOMER_ID  的就是  SET  HEADING  ON 是默认的       当然  OFF   的时候就是在输出的 



时候不输出列标头 



    SET HEADING ' ON | OFF ' 



SPOOL FILENAME/OFF 


返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!