按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
EMPLOYEE。LAST_NAME LIKE 'S%' AND PAYROLL。SALARY 》 20000;
326
…………………………………………………………Page 327……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
2 重新安排下边的查询条件以减少数据返回所需要的时间 并使用下边的统计 对整个表
以决定这些条件的次序
593 individuals have the last name SMITH。
712 individuals live in INDIANAPOLIS。
3;492 individuals are MALE。
1;233 individuals earn a salary 》= 30;000。
5;009 individuals are single。
Individual_id is the primary key for both tables。
SELECT M。INDIVIDUAL_NAME; M。ADDRESS; M。CITY; M。STATE; M。ZIP_CODE;
S。SEX; S。MARITAL_STATUS; S。SALARY
FROM MAILING_TBL M; INDIVIDUAL_STAT_TBL S
WHERE M。NAME LIKE 'SMITH%'
AND M。CITY = 'INDIANAPOLIS'
AND S。SEX = 'MALE'
AND S。SALARY 》= 30000
AND S。MARITAL_STATUS = 'S'
AND M。INDIVIDUAL_ID = S。INDIVIDUAL_ID;
327
…………………………………………………………Page 328……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
第 16 天 用视图从数据字典中获得信息
目标
今天我们来讨论数据字典 也就是通常所说的系统目录 在今天中我们会对以下的内
容有充分的了解
l 数据字典的定义
l 数据字典中都包括有哪些方面的信息
l 在数据字典中有几种不同类型的表
l 从数据字典中获得有用信息的有效方法
数据字典简介
每一种数据库都有它自己的数据字典 或系统目录 在今天的介绍中这两个词我们都
会使用 数据字典是在数据库环境中的一个系统区域 它包含着关于数据库成份的信息
数据字典中包括的信息如数据库设计 存储的 SQL 代码 用户统计 数据库过程 数据库
的增长情况和对数据库性能的统计
数据字典中包括有数据库设计信息的表 它们是由数据库设计语言 DDL 如 CREATE
TABLE 所创建的 这一部分的系统目录存储着善于表列和属性的信息 表的大小 表的权
限和表的增长情况信息 其它的对象也存储在了数据字典中如索引 触发机制 过程 包
和视图
使用统计表可以给出对于特定的用户的数据库库联接和权限信息 权限主要可以分成
两个部分 系统级权限和对象级权限 具有创建其它用户的权限是系统权限 但是访问表
的权限属于对象权限 在数据库中也强制性地使用了任务来确保安全性 这些信息也都在
数据字典中存储着
数据字典是数据库中众多有用工具之一 它是一种保证数据库组织的方法 而且特别
像库存零售中的明细账 它是一种确保数据库完整性的机制 例如 当你创建表的时候
数据库是如何知道你所创建的表在数据库中是否有已经存在的相同名字的呢 当你在创建
一个查询从表中选择数据的时候 数据库又是如何知道你是否有访问这个表的权限的呢
328
…………………………………………………………Page 329……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
数据字典 是数据库的心脏 所以你应该知道如何去使用它
用户的数据字典
最终用户 系统工程师和数据库管理员都在使用数据字典 那么他们是否对它了解呢
他们的访问是直接的还是间接的呢
最终用户 通常是为了他们而创建数据库的客户 是间接地访问系统的目录的 当一
个用户尝试去登录数据库的时候 数据字典将会将该用户的名字 密码 和权限做为联接
数据库的参考 数据库也会通过它来确定是否用户具有访问特定数据的权限 最终用户最
常用的访问数据库的方法是通过前端应用程序 现在已经开发出了许多的图形用户界面工
具可以允许让用户非常容易地构建 SQL 语句 当登录到数据库中以后 前端应用程序会立
即执行对数据字典的查询以定义用户可以访问的表 然后前端应用程序可能其于从数据字
典中获得的数据来创建一个本地化的系统目录 用户则可以用这个本地化的目录来从他或
好想要查询的表中获得数据
系统工程师是有着创建和设计数据库的模块 应用程序的开发以及应用程序的管理任
务的用户 在一些公司中会使用另外一种称呼 如程序员 程序分析员 数据模块师来称
呼他们的系统工程师 系统工程师是直接地使用数据字典来管理和开发过程的 当访问一
个已经存在的工程的时候 访问也可以通过数据库前终应用程序 开发工具以及计算机工
程帮助工具来获得 对于这些用户来说常用的系统目录是查询处于他的计划组中的模块
查询应用任务及权限和查询模块开发情况的统计 在特定的计划中系统工程师也可以将数
据字典应用于系统工程师的专用对象上
数据库管理员 DBAS 是数据字典中所定义的具有最大权限的用户 与其它的两组
用户偶而也会使用系统目录不同 DBAS 将使用数据字典作为他们的日常工作 访问通常
是通过查询的 但也可以通过数据库管理工具如 ORACLE 的 SERVER MANGER DBA 使
用数据字典中的信息来管理用户和资源以达到数据库优化运行的目的
如你所见 所有的数据库用户都需要使用数据字典 更为重要的是 关系型数据库系
统没有数据字典就无法存在了
数据字典中的内容
这一部分使用两种关系型数据库系统的系统目录 Oracle 和 Sybase 的 尽管这两种数
329
…………………………………………………………Page 330……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
据库系统都有着他自己的特点 但是他们提供的功能是相同的 不要关心它们在名字上的
不同 你只要明白数据字典的概念和它的内容就行了
Oracle 的数据字典
由于每一个表都必须有一个所有者 系统目录在数据字典中的所有者是 SYS Oracle
的数据字典可以分为三个基本类 用户访问视图 DBA 视图 以及动态执行表— — 它也会
以视图的形式出现 视图可以查询用户在数据字典中的用户账号信息 如权限和目录表的
创建 DBA 可以帮助数据库管理员完成日常的工作 它允许 DBA 来管理用户和数据库中
的其它对象 在 ORALCE 中的动态执行表也可以为 DBA 所使用并提供了对数据库的更深
层的监视 这些视图提供了储如对过程的执行 对 ROLLBACK 段的动态使用 内存的使
用等储如此类的统计信息 动态执行表都以 V为前缀
Sybase 的数据