按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 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
JSMITH SPORTS INSERT
JSMITH SPORTS UPDATE
JSMITH SPORTS DELETE
VJOHNSON TEST1 SELECT
VJOHNSON TEST1 INSERT
VJOHNSON TEST1 UPDATE
VJOHNSON TEST1 DELETE
VJOHNSON HOBBIES SELECT
VJOHNSON CLASSES SELECT
分析
如你所见 你可以操纵在一些表中的数据 然后对于其它的一些表你则只拥有只读访
问权限
当你创建一个对象的时候 如果你不想把它存于默认的地点你通常需要知道你可以把
336
…………………………………………………………Page 337……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
它存放于何处 ORACLE 的表空间的分散的 它们中的每一个都可以存储对象 每一个表
空间都被分配了一定数据的磁盘空间 这要根据你的系统的可用性而定 磁盘空间通常是
从数据管理员处获得的
下面的查询是从一个叫 USER_TABLESPACES 的视图中进行查询的 它会给出你访问
的表空间 分配对象的初始大小和它们的下一个大小以及它们的状态
INPUT/OUTPUT
SQL》 SELECT SUBSTR(TABLESPACE_NAME;1;30) TABLESPACE_NAME;
2 INITIAL_EXTENT;
3 NEXT_EXTENT;
4 PCT_INCREASE;
5 STATUS
6 FROM USER_TABLESPACES
TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT PCT_INCREASE STATUS
SYSTEM 32768 16384 1 ONLINE
RBS 2097152 2097152 1 ONLINE
TEMP 114688 114688 1 ONLINE
TOOLS 32768 16384 1