第12讲Oracle的数据字典的查询
目的:
1.掌握Oracle9i数据字典的作用和意义。
2.掌握常用对象的数据字典的查询。
授课内容:
11.1什么是数据字典:
1.数据字典(Oracle data dictionary): Oracle9i数据库的所有对象,权限,系统信息的视
图,称为数据字典。
2.Oracle9i数据的所有信息,系统的权限,用户,角,表,视图等等所有对象在创建
后都保存在数据字典的表中。这些表是归系统管理员DBA所有的,其他用户没有权限查询这些表。
3.但Oracle提供了访问这些表的视图,供其他用户访问这些数据字典。
4.数据库中存放数据字典的表的是非常关键的了,不能随意访问。
5.Oracle数据字典存储了用来管理数据库对象的所有信息。
6.Oracle内部字典:从用户角度出发的数据字典。
7.数据字典不是按字母来排序的,而是按其功能进行(表,安全性,等)分组的。
11.2数据字典的分组:
在查询数据字典时,Oracle把不同的信息分别使用了不同的视图,如用户自己的,所有的用户,和DBA的信息。
1.USER:以USER_开头的视图只可以查询出登录用户自己的对象信息。
2.ALL:以ALL_开头的视图可以查询所有用户的对象信息。这些对象要满足条
件是:你创建的,或你由权限的,或授权给public 组的。
(1)你创建的对象。
(2)对象的所有者已经授予了这些对象的某个权限给你。
(3)public角有权限的所有对象。
3.DBA: 以DBA_开头的视图查询数据库中所有的对象信息。
[] 数据字典的常用分组:
1.导航图:DICTIONARY (DICT)和DICT_COLUMNS
2.可选择的内容:表(和列),视图,同义词,序列
3.约束和注释:
4.索引和簇:
5.抽象数据类型,与ORDBMS相关的结构和LOB:
6.数据库连接,实体化视图:
7.存储过程,函数,程序包,触发器:
8.维:
9.空间分配和空间使用:
10.用户,权限:
11.角:
12.审计:
[] 数据字典的名称规定:
除了特殊的情况外,Oracle数据字典对象的所有名称都以如下3个前缀开头:
USER: 查询用户所拥有的对象的信息
ALL:纪录了USER的信息以及授予了public或用户的对象的信息。
DBA:包含数据库的所有对象,不论拥有者是谁。
[] 常见的数据字典:
13.Oracle9i的数据字典:
Dictionary : 同义词是DICT: 可以查询Oracle9i有那些数据字段。
DICT_CLOUMNS: 每个数据字典视图的列
14.系统的信息
查询系统的版本信息
select*from v$version
15.数据库的对象信息
USER_CATALOG: 显示用户拥有的所有表,视图,同义词,序列
ALL_CATELOG: 显示User以及public权限的所有的表,视图,同义词,序列。
USER_OBJECTS: 查询所有类型对象,包括簇,数据库连接,目录函数,存储过程,函数,包,触发器,Java类,抽象数据类型,序列,同义词,LOB,视图。
ALL_OBJECTS:
16.表信息
USER_TABLES: 查询用户拥有的表的信息。
ALL_TABLES:
USER_TAB_COLUMNS: 查询表的列的专门信息。
oracle数据库表结构怎么看17.视图信息
USER_VIEWS:
ALL_VIEWS
18.序列信息
USER_SEQUENCES:
ALL_SEQUENCES
19.同义词对象信息
USER_SYNONYMS: 列出了用户所拥有的全部同义词。
ALL_SYNONYMS:
20.索引
USER_INDEXES:
ALL_INDEXES:
21.用户
USER_USERS: 当前的用户
ALL_USERS: 数据库中的所有用户
22.角:
USER_ROLES:
ALL_ROLES:
23.约束
USER_CONSTRAINTS:
ALL_CONSTRAINTS:
24.表的字段
USER_TAB_COLUMNS:
ALL_TAB_COLUMNS:
USER_TAB_COMMENTS: 字段的注释
25.索引的字段
USER_IND_COLUMNS:
ALL_IND_COLUMNS:
26.约束的字段
USER_CONS_COLUMNS: 与约束相关的列。
ALL_CONS_COLUMNS:
27.用户的对象级权限
USER_TAB_PRIVS:当前用户的对象级权限
ALL_TAB_PRIVS: 所有用户的对象级权限
28.用户的系统级权限
USER_SYS_PRIVS: 当前用户的系统级权限
ALL_SYS_PRIVS: 所有用户的系统级权限
29.PL/SQL存储过程和函数,包对象的源代码
USER_SOURCE ALL_SOURCE
30.触发器对象信息
USER_TRIGGERS, ALL_TRIGGERS
31.对象权限,系统权限,角权限
ROLE_TAB_PRIVS:角的对象权限
ROLE_SYS_PRIVS: 角的系统权限
ROLE_ROLE_PRIVS:角的角权限
32.抽象的数据类型:
USER_TYPES:
ALL_TYPES:
33.大对象的信息
USER_LOBS:
ALL_LOBS:
34.aaa
Oracle数据库字典介绍
Oracle数据字典是有表和视图组成的,存储有关数据库结构信息的一些数据库对象。数据库字典描述了实际数据是如何组织的。对它们可以象处理其他数据库表或视图一样进行查询,但不能进行任何修改。
Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。
在Oracle数据库字典中,许多视图都有三个不同的实例,它们的前缀分别为"USER_"、"ALL_"及"DBA_"。"USER_"为前缀的数据库字典视图通常记录执行查询的帐户所拥有的对象的信息,"ALL_"为前缀的数据库字典视图通常记录包括执行查询的帐户所拥有的对象的信息及授权至PUBLIC的帐户用户所拥有的对象的信息,"DBA_"为前缀的数据库字典视图则包含所有数据库对象的信息,而不管其所有者。其他的字典视图中主要的是V$视图,之所以这样叫是因为他们都是以V$或GV$开头的。V$视图是基于X$虚拟视图的。
V$视图是SYS用户所拥有的,在缺省状况下,只有SYS用户和拥有DBA系统权限的用户可以看到所有的视图,没有DBA权限的用户可以看到USER_和ALL_视图,但不能看到DBA_视图。与DBA_,ALL,和USER_视图中面向数据库信息相反,这些视图可视的给出了面向实例的信息。
在Oracle的绝大多数数据字典视图中都有象DBA_TABLES,ALL_TABLES和USER_TABLES这样的视图家族。Oracle中有超过100个视图家族,下表列出了最重要和最常用的视图家族,需要注意的是每个视图家族都有一个DBA_,一个ALL_一个USER_视图。
在Oracle中还有一些不常用的数据字典表,但这些表不是真正的字典家族,他们都是一些重要的单一的视图。这些视图见下表:
第12讲事务处理
目的:
1.掌握Oracle事务的基本概念
2.掌握Oracle事务处理的基本的语句
授课内容:
1.1事务(Transaction):
1.在Oracle9i中,将多个DML语句(insert, update, delete)作为一个整体来执行,当
全部执行成功是,将执行结果提交到数据库,否则恢复到没有执行这些语句的状态。
2.将执行的结果对数据库更新,叫提交(commit)。在commit之前,只有你才能看到语
句对表的影响,访问表的其他用户,依然看到的是旧的数据。
3.恢复到没有执行这些语句的时候,叫回滚(rollback)。
1.2Oracle9i中的事务处理语句:
1mit: 提交:提交所有的在上一次commit以后的所有DML语句。
3.savepoint 标号:保存事务处理点。如果执行了commit语句,则所有的回滚点将
清除了。标号必须是唯一的,如果有2个保存点的标号相同,则前一个保存点被消
除了。
5.set transaction read only: 建立只读的事务
6.set transaction read write:建立可读可写的事务。
注:
If you use a SET TRANSACTION statement, then it must be the first statement in your transaction
特别注意:
在执行一个DDL语句前和语句后,Oracle9i隐含提交当前的事务。
Oracle implicitly commits the current transaction before and after executing a data definition language (DDL) statement
事务处理例子:
update emp set job='student'where empno=9912

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。