Oracle数据字典管理与数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12、查询约束: 、查询约束:
(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 可以临时禁止约束,如: SQL> alter table book_example SQL> disable constraint book_example_1; SQL> alter table book_example SQL> enable constraint book_example_1; (2)主键和外键被称为表约束,而not null和unique之类 的约束被称为列约束。通常将主键和外键作为单独的命 名约束放在字段列表下面,而列约束可放在列定义的同 一行,这样更具有可读性。
如果知道自己要查的对 象类型, 象类型,但却不知道数 据字典的具体名称时, 据字典的具体名称时, 应怎样查找相应的数据 字典? 字典?
在数据字典中,有两个特殊的表:
dictionary 全部数据字典表的名称和解释,它有一个同 义词dict
dict_columns 全部数据字典表里字段名称和解释
数据字典Dictionary提供的信息 提供的信息 数据字典
数据字典的具体使用方法
1、查询用户 、
SQL>select username from dba_users; SQL> select username from all_users;
当前或任何用 户均可使用 仅由DBA 使用
修改口令 SQL> alter user username_count identified by new_password;
10、查询触发器: 、查询触发器:
SQL> select * from dba_trigers;
存储过程,函数从dba_objects查找。 其文本: SQL> select text from user_source ; where name='BOOK_SP_EXAMPLE';
oracle总是将存储过程,函数等放在SYSTEM表空间 总是将存储过程,函数等放在 表空间。 总是将存储过程 表空间
8、查询聚簇 、
SQL>
select * from dba_clusters;
9、查询同义词 、
SQL> select * from dba_synonyms
where table_owner='SCOTT';
SQL> select * from ALL_synonyms;
where table_owner='SYSTEM';
动态 数据字典 作用
只要数据库打开被使用,这些 虚拟表中的数据会随时反映数 据库的运行状况而不断更新。
通过数据字典可以做什么? 通过数据字典可以做什么?
数据字典data dictionary 有三个主要用途: Oracle 通过存取数据字典以便获得有关用户模式对象以及 存储结构等信息。 当系统执行了DDL语句后,Oracle便及时修改数据字典。 . 任何用户能够以只读的形式使用数据字典来获取数据库信 息。
2、查询表空间: 、查询表空间:
SQL> select * from dba_data_files; ';//表空间对应
的数据文件 SQL> select * from dba_tablespaces;//表空间
3、查询数据库对象 、
select * from dba_objects; 可根据拥有者查询下列对象类型: CLUSTER、 DATABASE LINK、 FUNCTION、 INDEX、 LIBRARY、 PACKAGE、 PACKAGE BODY、 PROCEDURE、 SEQUENCE、 SYNONYM、 TABLE、 TRIGGER、 TYPE、 UNDEFINED、 VIEW。 如: select * from dba_objects where OBJECT_TYPE='TABLE' and OWNER='SCOTT';
数据库用户名称; 为用户授予的权限和角色; 模式对象的名称,如 tables,views,indexes,procedures,functions,packages,triggers 等。 完整性约束的具体信息; 每个字段的默认值; 数据库空间的使用情况; 审计功能,在\oracle\ora92\rdbms\admin目录下的文件 CATAUDIT.SQL就是用于为审计创建数据字典视图的脚本。 对象与用户的严格管理(适用于高度机密管理); 其他一般数据库信息。
怎样使用数据字典? 怎样使用数据字典?
数据字典视图为所有用户充当着参考书作用。用户使用 SQL语句存取数据字典。 有些数据字典视图对所有Oracle用户是可存取的。而其 他的数据字典视图仅供数据库管理员使用。在数据库打 开期间,数据字典是可用的,它驻留在SYSTEM表空间 上,并总是处于在线状态。
三种前缀的数据字典视图
前缀 应用范围 任何用户都可读取的视图,其内容随用户不同而 不同,它只提供当 前用户模式下的对象信息 (what is in the user’s schema) 例如:下列查询返回在你当前模式下所有对象。 SELECT object_name, object_type FROM USER_OBJECTS; 所有用户都可读取的用户视图;它提供与用户有关的的对象信息 (what the user can access) 例如:下列查询返回你有权访问的 所有对象。 SELECT owner, object_name, object_type FROM ALL_OBJECTS; 提供了只有数据库管理员才可读取的视图 ,包括所有用户视图中的 对象信息(what is in all users’ schemas) DBA_ 例如:SELECT owner, object_name, object_type FROM SYS.DBA_OBJECTS;
数据字典结构
用户可查询的虚拟数据表(视图): 用户可查询的虚拟数据表(视图): 将基本表中的数据转换成有用的信息。
数据字典的拥有者: 数据字典的拥有者: 拥有者是SYS。它拥有基本上述基本表 和虚拟数据表。
提供的信息: 数据字典提供的信息:
数据库用户名称; 为用户授予的权限和角色; 模式对象的名称,如 tables,views,indexes,procedures,functions,packages,triggers 等。 完整性约束的具体信息; 每个字段的默认值; 数据库空间的使用情况; 审计功能,在\oracle\ora92\rdbms\admin目录下的文件 CATAUDIT.SQL就是用于为审计创建数据字典视图的脚本。 对象与用户的严格管理(适用于高度机密管理); 其他一般数据库信息。
动态性能表
在运行期间, Oracle 维持着一组用以记录当前数据库活 动的虚表,这些表被称为动态性能表。用户不能存取这 些表。但数据库管理员能够在这些表上查询并创建视图, 并授予存取权限给其他读取这些视图的用户。 SYS拥有动态性能表,这些表的名字都是以V_$开头. 在 这些表上创建的视图的同义词是以 V$开头.
(3)列约束可从表定义看出,即describe;表约 束即主键和外键,可从dba_constraints和 dba_cons_columns 查。 select * from user_constraints where table_name='BOOK_EXAMPLE'; (4)定义约束可以无名(系统自动生成约束名) 和自己定义约束名(特别是主键、外键) 如:create table book_example (identifier number not null); create table book_example (identifier number constranit book_example_1 not null);
查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs;
6、查询序列: 、查询序列:
select * from dba_sequences; select * from all_sequences; 查看序列号,last_number是当前值 SQL>select * from user_sequences;
7、查询视图 、
select * from dba_views; select * from all_views; 可用命令 desc all_views;来查看表结构 其中,Text列可用于查询视图生成的脚本 查看视图的名称 SQL>select view_name from user_views;
数据字典分 为哪几类? 为哪几类?
静态数据字典 静态表
动态数据字典 视图
SYS用户 用户
静态数据字典
用途
呈现形式
是一组主要以以下几个形式
主要存放通过CREATE 创建的永久数据库对象
开头的表:ALL_、DBA_、USER_。 表的名字基本都是该字典所存储对 象类型的缩写
呈现形式
动态数据字典都是以V$开头 动态数据字典都是以 开头源自文库存放在Oracle数据库中的 存放在 数据库中的 虚拟表中。 虚拟表中。
11、查看函数和过程的状态 、
SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE';
USER_
ALL_
为什么数据字典是 以视图的形式呈现?
一、便于隐藏部分数据; 便于隐藏部分数据; 控制数据库用户的读取权限; 二、控制数据库用户的读取权限; 三、将数据进行分类可避免用户直接使用基本表
DUAL表 表
The table named DUAL is a small table in the data dictionary that Oracle and user-written programs can reference to guarantee a known result. This table has one column called DUMMY and one row containing the value X. 主要用于表达式计算,函数及变量的求值等 例如: Select sysdate from dual;
在哪找到数据字典 或 谁是数据字典的拥 有者? 有者
Oracle用户 用户SYS拥有系统中数据字典Data 用户 Data Dictionary。数据字典是存在所属数据库的系统表 空间SYSTEM Tabalspace内。每个用户在该数据库 中的所有操作都会被记录下来。
基本表: 基本表: 为数据字典存储相关数据表信息的地方。 其大部分数据是加密的,只有Oracle数据 数据 库系统可读写这些数据。 库系统可读写这些数据。
4章 Oracle数据字典 第4章 Oracle数据字典 管理与数据类型
(数据字典的查询 )
什么是 数据字典? 数据字典?
数据字典是Oracle数据库系统的信息核心,它是一组提供有 数据库系统的信息核心, 数据字典是 数据库系统的信息核心 关数据库信息的表和视图的集合。这些表和视图是只读的。 关数据库信息的表和视图的集合。这些表和视图是只读的。 表和视图的集合 数据字典是随数据库的建立而建立的。 为及时准确反映数据库的状态,数据字典中内容是随数据库 执行特定动作时自动更新的。同时,数据库依赖于数据字典 来记录、校验和管理正在进行的操作。
4、查询表 、
SQL> select * from dba_tables;
查看用户下所有的表 SQL>select * from user_tables;
5、查询索引 、
select * from dba_indexes;//索引,包括主键索引 select * from all_indexes;