按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
JSMITH MAG_VIEW VIEW
JSMITH SPORTS TABLE
VJOHNSON TEST1 TABLE
VJOHNSON HOBBIES TABLE
VJOHNSON CLASSES TABLE
VJOHNSON STUDENTS VIEW
分析
作为用户你可以会拥有比上表更多的对象 系统表会加入许多的表 我们可以很容易
在将这个清单简化 ALL_CATALOG 视图与 the USER_CATALOG 视图一样 但是它显示
给你所有的你可以访问的表 视图 顺序 和同义字
333
…………………………………………………………Page 334……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
INPUT
SQL》 SELECT SUBSTR(OBJECT_TYPE;1;15) OBJECT_TYPE;
2 SUBSTR(OBJECT_NAME;1;30) OBJECT_NAME;
3 CREATED;
4 STATUS
5 FROM USER_OBJECTS
6 ORDER BY 1;
OUTPUT
OBJECT_TYPE OBJECT_NAME CREATED STATUS
INDEX MAGAZINE_INX 14…MAR…97 VALID
INDEX SPORTS_INX 14…MAR…97 VALID
INDEX HOBBY_INX 14…MAR…97 VALID
TABLE MAGAZINE_TBL 01…MAR…97 VALID
TABLE SPORTS 14…MAR…97 VALID
TABLE HOBBY_TBL 16…MAR…97 VALID
分析
你可以使用 USER_OBJECTS 视图来获得关于用户所拥有对象的通用信息如名字 类
型 数据的创建 数据的更新以及对象的状态 在上一个查询中 我们对每一个数据对象
的创建进行了确认
INPUT/OUTPUT
SQL》 SELECT TABLE_NAME; INITIAL_EXTENT; NEXT_EXTENT
2 FROM USER_TABLES;
TABLE_NAME INITIAL_EXTENT NEXT EXTENT
MAGAZINE_TBL 1048576 540672
SPORTS 114688 114688
分析
从 USER_TABLES 中可以选择非常多的有用信息 就看你想要知道什么 大部分的数
据都是由存储信息组成
注 注意最初的和最大的输出值是字节 在一些解释器中你可能会看到在列之间加以空格
以更具可读性 见第 19 天的 事务处理 SQL 和第 20 天的 SQL*PLUS
ALL_TABLES 与 USER_TABLES 的关系与 ALL_CATALOG 和 USER_CATALOG 关系
334
…………………………………………………………Page 335……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
一样 也就是说 ALL_TABLES 可以让你查看所有的你可以访问的表 而不只是你所拥有
的表 ALL_TABLES 也可以包括在其它用户目录中存在的表
INPUT/OUTPUT
SQL》 SELECT SUBSTR(OWNER;1;15) OWNER;
2 SUBSTR(TABLE_NAME;1;25) TABLE_NAME;
3 SUBSTR(TABLESPACE_NAME;1;13) TABLESPACE
4 FROM ALL_TABLES;
OWNER TABLE_NAME TABLESPACE
SYS DUAL SYSTEM
JSMITH MAGAZINE_TBL USERS
SMITH SPORTS USERS
VJOHNSON TEST1 USERS
VJOHNSON HOBBIES USERS
VJOHNSON CLASSES USERS
分析
你又一次选择了只是你想得到的信息 在 ALL_TABLES 的许多附加列中也包含着有
用的信息
作为一个数据库用户 你可以通过查询 USER_SEGMENTS 视图来监视你的表和索引
的增长情况 如同它的名字一样 USER_SEGMENTS 给你了关于每个段的信息 如存储
信息等等 一个段可以会由一个表 索引 ROLLBACK 簇 临时表或缓存组成 下边的
例子告诉了你如何从这个视图中获得有用的信息
INPUT/OUTPUT
SQL》 SELECT SUBSTR(SEGMENT_NAME;1;30) SEGMENT_NAME;
2 SUBSTR(SEGMENT_TYPE;1;8) SEG_TYPE;
3 SUBSTR(TABLESPACE_NAME;1;25) TABLESPACE_NAME;
4 BYTES; EXTENTS
5 FROM USER_SEGMENTS
6 ORDER BY EXTENTS DESC
SEGMENT_NAME SEG_TYPE TABLESPACE_NAME BYTES EXTENTS
MAGAZINE_TBL TABLE USERS 4292608 7
SPORTS_INX INDEX USERS 573440 4
335
…………………………………………………………Page 336……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
SPORTS TABLE USERS 344064 2
MAGAZINE_INX INDEX USERS 1589248 1
分析
上边的输出是按 EXTENTS 递减的原则进行了排序的 段增长最多的将会出现于第一
个行中
现在你已经知道了都有哪些表是你可以访问的 你也许会想知道对于每个表你都可以
做什么 你的查询是否受限 或你有权限更新表的内容吗 ALL_TAB_PRIVS 视图可以告
诉你作为一个数据库用户你在每一个可以使用的表中的权限
INPUT/OUTPUT
SQL》 SELECT SUBSTR(TABLE_SCHEMA;1;10) OWNER;
2 SUBSTR(TABLE_NAME;1;25) TABLE_NAME;
3 PRIVILEGE
4 FROM ALL_TAB_PRIVS;
OWNER TABLE_NAME PRIVILEGE
SYS DUAL SELECT
JSMITH MAGAZINE_TBL SELECT
JSMITH MAGAZINE_TBL INSERT
JSMITH MAGAZINE_TBL UPDATE
JSMITH MAGAZINE_TBL DELETE
JSMITH SPORTS SELECT