ORACLE数据字典

合集下载

ORACLE数据字典

ORACLE数据字典

ORACLE数据字典(一)数据字典概念Oracle数据字典由表和视图组成,其中存储了一些与数据库结构信息相关的数据库对象。

数据字典描述了实际数据的组织方式。

例如,表的创建者信息、创建时间信息、表空间信息、用户访问权限信息等。

它们可以像其他数据库表或视图一样进行查询,但不能修改。

它们存储在系统表空间中。

当用户在操作数据库中的数据时遇到困难,他们可以访问数据字典来查看详细信息。

数据字典不仅是数据库的核心,也是所有用户,包括最终用户、程序员和数据库管理员的重要工具。

因为数据字典是只读的,所以我们只能对其表或视图使用SQL查询语句。

oracle数据库字典通常是在创建和安装数据库时被创建的,oracle数据字典是oracle数据库系统工作的基础,没有数据字典的支持,oracle数据库系统就不能进行任何工作。

数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

数据字典内容包括:1.数据库中所有模式对象的信息,如表、视图、集群、索引、集群、同义词、序列、过程、方法、包、触发器等。

2,分配多少空间,当前使用了多少空间等。

3,列的缺省值。

4.约束信息的完整性。

5.Oracle用户的名称。

6,用户及角色被授予的权限。

7,用户访问或使用的审计信息。

8,其它产生的数据库信息。

(二)数据字典分类数据字典按照存在的形式分为数据字典表和数据字典视图。

2.1数据字典表数据字典表里的数据是oracle系统存放的系统数据,而普通表存放的是用户的数据。

为了方便的区别这些表,这些表的名字都是用\结尾,这些表属于sys用户。

数据字典表由$oracle_uuhome/rdbms/admin/sql创建。

创建BSQ脚本,并在此脚本中调用其他脚本来创建这些数据字典表。

在这些创建脚本中使用基表创建SQL。

只有Oracle可以读取和写入这些数据字典表。

基表是存储数据库信息的基础表。

基表是在任何Oracle 数据库中创建的第一个对象。

使用“创建数据库”创建数据库时,只要Oracle server运行SQL BSQ脚本,就会自动创建这些对象。

Oracle常用数据字典说明及常用脚本

Oracle常用数据字典说明及常用脚本

1.V$ACCESS此视图显示数据库中当前锁定的对象及访问它们的会话。

列数据类型说明SID NUMBER访问一个对象的会话号OWNER VARCHAR2(64)对象的拥有者OBJECT VARCHAR2(1000)对象名TYPE VARCHAR2(12)对象的类型2.V$BGPROCESS此视图描述后台进程。

列数据类型说明PADDR RAW(4)进程状态对象的地址NAME VARCHAR2后台进程的名称DESCRIPTION VARCHAR2后台进程的说明ERROR NUMBER所遇到的错误3.V$BUFFER_POOL此视图显示实例可用的所有缓冲池的相关信息。

这个“设施”适合于LRU栓锁组的数目。

更多的信息,请参阅“DB_BLOCK_LRU_LATCHES”。

列数据类型说明ID NUMBER缓冲池ID号NAME VARCHAR2(20)缓冲池名称LO_SETID NUMBER低设置ID号HI_SETID NUMBER高设置ID号SET_COUNT NUMBER这个缓冲池中的设置数,为HI_SETID_LO_SETID+1 BUFFERS NUMBER分配给缓冲池的缓冲区数LO_BNUM NUMBER本缓冲池的低缓冲区号HI_BNUM NUMBER本缓冲池的高缓冲区号4. V$BUFFER_POOL_STATISTICS此视图显示事例可用的所有缓冲池的相关信息。

这个“设施”适合于LRU栓锁组的数目。

更多的信息,请参阅“DB_BLOCK_LRU_LATCHES”。

列数据类型说明ID NUMBER缓冲池ID号NAME VARCHAR2(20)缓冲池名称SET_MSIZE NUMBER缓冲池最大设置尺寸CNUM_REPL NUMBER替换列表中的缓冲区数CNUM_WRITE NUMBER写入列表中的缓冲区数CNUM_SET NUMBER设置中的缓冲区数BUF_GOT NUMBER设置获得的缓冲区数SUM_WRITE NUMBER设置写入的缓冲区数SUM_SCAN NUMBER设置扫描的缓冲区数FREE_BUFFER_WAIT NUMBER可用缓冲区等待统计数据WRITE_COMPLETE_WAIT NUMBER写完成等待统计数据BUFFER_BUSY_WAIT NUMBER缓冲区忙等待统计数据RFEE_BUFFER_INSPECTED NUMBER可用缓冲区检查统计数据DIRTY_NUMBER灰缓冲区检查统计数据DB_BLOCK_CHANGE NUMBER数据块更改统计数据DB_BLOCK_GETS NUMBER取得数据库块统计数据CONSISENT_GETS NUMBER一致取统计数据PHYSICAL_READS NUMBER物理读统计数据PHYSICAL_WRITES NUMBER物理写统计数据5.V$COMPATIBILITY此视图显示数据库实例正在使用的特性,以防止性能降为以前的版本。

oracle 数据字典 字段内容

oracle 数据字典 字段内容

一、概述Oracle数据字典是Oracle数据库内置的元数据信息集合,用于存储和展示数据库中的对象、表、视图、索引等相关信息。

其中,字段内容是数据字典中的一个重要部分,它记录了数据库中各个字段的属性、数据类型、约束等信息。

本文将从字段内容的定义、结构和应用角度进行详细的介绍和分析,帮助读者更好地理解和运用Oracle数据字典中的字段内容。

二、字段内容的定义在Oracle数据库中,字段内容指的是数据库中表的字段定义信息,包括字段名、数据类型、长度、约束、默认值等。

它是数据库设计和管理的重要指标之一,对于数据库开发人员、管理员和分析师来说具有重要意义。

三、字段内容的结构字段内容包括以下几个方面的信息:1.字段名:字段在表中的名称,一般由字母、数字和下划线组成。

2.数据类型:字段存储的数据类型,如VARCHAR2、NUMBER、DATE等。

3.长度:字段存储数据的长度限制,如VARCHAR2(50)表示最大长度为50个字符。

4.约束:字段的数据约束,如主键约束、外键约束、唯一约束等。

5.默认值:字段的默认数值或表达式,当插入数据时若未指定该字段的值,则自动填充默认值。

四、字段内容的应用1.数据库设计:在进行数据库设计时,需要合理地定义字段内容,选择合适的数据类型、长度和约束,以便存储和保护数据的完整性和一致性。

2.数据分析:在进行数据分析时,可以通过字段内容了解到表中各个字段的基本信息,为数据清洗、转换和分析提供依据。

3.性能优化:通过分析字段内容,可以优化数据库的物理结构、索引设计等,提高数据库的性能和响应速度。

五、字段内容的查询方法在Oracle数据库中,可以通过以下几种方式查询字段内容:1.使用SQL语句查询数据字典视图,如USER_TAB_COLUMNS、ALL_TAB_COLUMNS、DBA_TAB_COLUMNS等。

2.使用Oracle SQL Developer工具进行可视化操作,通过图形化界面查看和编辑字段内容。

Oracle常用数据字典

Oracle常用数据字典

一、Oracle数据字典主要由一下几种视图构成:ER视图以USER_为前缀,用来记录用户对象的信息2,ALL视图以ALL_为前缀,用来记录用户对象的信息及被授权访问的对象信息3.DBA视图以DBA_为前缀,用来记录数据库实例的所有对象的信息4.V$视图以V$为前缀,用来记录与数据库活动相关的性能统计动态信息5.GV$视图以GV$为前缀,用来记录分布式环境下所有实例的动态信息二、Oracle常用的数据字典1.基本数据字典字典名称说明DBA_TABLES 所有用户的所有表信息DBA_TAB_COLUMNS 所有用户的表的字段信息DBA_VIEWS 所有用户的所有视图信息DBA_SYNONYMS 所有用户的所有同义词信息DBA_SEQUENCES 所有用户的所有序列信息DBA_CONSTRAINTS 所有用户的表的约束信息DBA_IND_COLUMNS 所有用户的表的索引的字段信息DBA_TRIGGERS 所有用户的触发器信息DBA_SOURCES所有用户的存储过程信息DBA_SEGMENTS 所有用户的段的使用空间信息DBA_EXTENTS 所有用户的段的扩展信息DBA_OBJECTS 所有用户对象的基本信息CAT 当前用户可以访问的所有基表TAB 但前用户创建的所有基表、视图、同义词等DICT 构成数据字典的所有表的信息2.与数据库组件相关的数据字典数据库组件数据字典中的表或视图说明数据库V$DATAFILE 记录系统的运行情况表空间DBA_TABLESPACES 记录系统表空间的基本信息DBA_FREE_SPACE 记录系统表空间的空闲空间信息控制文件V$CONTROLFILE 记录系统控制文件的基本信息V$CONTROL_RECORD_SECTION 记录系统控制文件中记录文档段的信息V$PARAMETER 记录系统个参数的基本信息数据文件DBA_DATA_FILES 记录系统数据文件及表空间的基本信息V$FILESTAT 记录来自控制文件的数据文件信息V$DATAFILE_HEADER 记录数据文件头部的基本信息段DBA_SEGMENTS 记录段的基本信息区DBA_EXTENTS 记录数据区的基本信息日志V$THREAD 记录日志线程的基本信息V$LOG 记录日志文件的基本信息V$LOGFILE 记录日志文件的概要信息归档V$ARCHIVED_LOG 记录归档日志文件的基本信息V$ARCHIVED_DEST 记录归档日志文件的路径信息数据库实例V$INSTANCE 记录实例的基本信息V$SYSTEM_PARAMETER 记录实例当前有效的参数信息内存结构V$SGA 记录SGA区的信息V$SGASTAT 记录SGA的详细信息V$DB_OBJECT_CACHE 记录对象缓存的大小信息V$SQL 记录SQL语句的详细信息V$SQLTEXT 记录SQL语句的语句信息V$SQLAREA 记录SQL区的SQL基本信息后台进程V$BGPROCESS 显示后台进程信息V$SESSION 显示当前会话信息3.常用动态性能视图视图名称说明V$FIXED_TABLE 显示当前发行的固定对象的说明V$INSTANCE 显示当前实例的信息V$LATCH 显示锁存器的统计数据V$LIBRARYCACHE 显示有关库缓存性能的统计数据V$ROLLSTAT 显示联机的回滚段的名字V$ROWCACHE 显示活动数据字典的统计V$SAG 记录SGA区的信息V$SGASTAT 记录SGA的详细信息V$SORT_USAGE 显示临时段的大小及会话V$SQLTEXT 记录SQL语句的语句信息V$SQLAREA 记录SQL区的SQL基本信息V$STSSTAT 显示基本的实例统计信息V$SYSTEM_EVENT 显示一个事件的总计等待时间V$WAITSTAT 显示块竞争统计数据查看当前用户的缺省表空间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;查看用户下所有的表SQL>select * from user_tables;显示用户信息(所属表空间)select default_tablespace,temporary_tablespacefrom dba_users where username='GAME';1、用户查看当前用户的缺省表空间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;显示当前会话所具有的权限SQL>select * from session_privs;显示指定用户所具有的系统权限SQL>select * from dba_sys_privs where grantee='GAME';显示特权用户select * from v$pwfile_users;显示用户信息(所属表空间)select default_tablespace,temporary_tablespacefrom dba_users where username='GAME';显示用户的PROFILEselect profile from dba_users where username='GAME';2、表查看用户下所有的表SQL>select * from user_tables;查看名称包含log字符的表SQL>select object_name,object_id from user_objectswhere instr(object_name,'LOG')>0;查看某表的创建时间SQL>select object_name,created from user_objects where object_name=upper('&table_name');查看某表的大小SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segmentswhere segment_name=upper('&table_name');查看放在ORACLE的内存区里的表SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;3、索引查看索引个数和类别SQL>select index_name,index_type,table_name from user_indexes order by table_name;查看索引被索引的字段SQL>select * from user_ind_columns where index_name=upper('&index_name');查看索引的大小SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segmentswhere segment_name=upper('&index_name');4、序列号查看序列号,last_number是当前值SQL>select * from user_sequences;5、视图查看视图的名称SQL>select view_name from user_views;查看创建视图的select语句SQL>set view_name,text_length from user_views;SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的大小SQL>select text from user_views where view_name=upper('&view_name');6、同义词查看同义词的名称SQL>select * from user_synonyms;7、约束条件查看某表的约束条件SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');SQL>select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder by cc.position;8、存储函数和过程查看函数和过程的状态SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE';查看函数和过程的源代码SQL>select text from all_source where owner=user and name=upper('&plsql_name');☆dba_开头.....dba_users 数据库用户信息dba_segments 表段信息dba_extents 数据区信息dba_objects 数据库对象信息dba_tablespaces 数据库表空间信息dba_data_files 数据文件设置信息dba_temp_files 临时数据文件信息dba_rollback_segs 回滚段信息dba_ts_quotas 用户表空间配额信息dba_free_space 数据库空闲空间信息dba_profiles 数据库用户资源限制信息dba_sys_privs 用户的系统权限信息dba_tab_privs 用户具有的对象权限信息dba_col_privs 用户具有的列对象权限信息dba_role_privs 用户具有的角色信息dba_audit_trail 审计跟踪记录信息dba_stmt_audit_opts 审计设置信息dba_audit_object 对象审计结果信息dba_audit_session 会话审计结果信息dba_indexes 用户模式的索引信息☆user_开头user_objects 用户对象信息user_source 数据库用户的所有资源对象信息user_segments 用户的表段信息user_tables 用户的表对象信息user_tab_columns 用户的表列信息user_constraints 用户的对象约束信息user_sys_privs 当前用户的系统权限信息user_tab_privs 当前用户的对象权限信息user_col_privs 当前用户的表列权限信息user_role_privs 当前用户的角色权限信息user_indexes 用户的索引信息user_ind_columns 用户的索引对应的表列信息user_cons_columns 用户的约束对应的表列信息user_clusters 用户的所有簇信息user_clu_columns 用户的簇所包含的内容信息user_cluster_hash_expressions 散列簇的信息☆v$开头v$database 数据库信息v$datafile 数据文件信息v$controlfile 控制文件信息v$logfile 重做日志信息v$instance 数据库实例信息v$log 日志组信息v$loghist 日志历史信息v$sga 数据库SGA信息v$parameter 初始化参数信息v$process 数据库服务器进程信息v$bgprocess 数据库后台进程信息v$controlfile_record_section 控制文件记载的各部分信息v$thread 线程信息v$datafile_header 数据文件头所记载的信息v$archived_log 归档日志信息v$archive_dest 归档日志的设置信息v$logmnr_contents 归档日志分析的DML DDL结果信息v$logmnr_dictionary 日志分析的字典文件信息v$logmnr_logs 日志分析的日志列表信息v$tablespace 表空间信息v$tempfile 临时文件信息v$filestat 数据文件的I/O统计信息v$undostat Undo数据信息v$rollname 在线回滚段信息v$session 会话信息v$transaction 事务信息v$rollstat 回滚段统计信息v$pwfile_users 特权用户信息v$sqlarea 当前查询过的sql语句访问过的资源及相关的信息v$sql 与v$sqlarea基本相同的相关信息v$sysstat 数据库系统状态信息☆all_开头all_users 数据库所有用户的信息all_objects 数据库所有的对象的信息all_def_audit_opts 所有默认的审计设置信息all_tables 所有的表对象信息all_indexes 所有的数据库对象索引的信息☆session_开头session_roles 会话的角色信息session_privs 会话的权限信息☆index_开头index_stats 索引的设置和存储信息☆伪表dual 系统伪列表信息注意:dba权限可以访问动态性能视图。

oracle 数据字典查询语句

oracle 数据字典查询语句

oracle 数据字典查询语句Oracle 数据字典是一个包含了数据库中所有对象和结构的元数据集合。

通过查询数据字典,可以获取数据库的详细信息,如表、列、索引、约束、触发器等对象的定义和属性。

下面列举了十个常用的Oracle 数据字典查询语句。

1. 查询所有表名:```sqlSELECT TABLE_NAME FROM ALL_TABLES;```这个查询语句将返回当前用户下所有表的名称。

2. 查询表的列信息:```sqlSELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名';```这个查询语句将返回指定表的所有列名、数据类型、数据长度和是否可空。

3. 查询表的索引信息:```sqlSELECT INDEX_NAME, COLUMN_NAME, COLUMN_POSITION FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '表名';这个查询语句将返回指定表的所有索引名称、索引列名和索引列位置。

4. 查询表的主键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_NAME = 'PK_主键名'; ```这个查询语句将返回指定表的主键约束名和主键列名。

5. 查询表的外键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME, R_CONSTRAINT_NAME, R_OWNER, R_TABLE_NAME, R_COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_TYPE = 'R';```这个查询语句将返回指定表的外键约束名、外键列名、参考表的所有者、参考表名和参考列名。

oracle学习笔记10--数据字典和动态性能视图

oracle学习笔记10--数据字典和动态性能视图

数据字典和动态性能视图数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。

动态性能视图记载了例程启动后的相关信息。

数据字典数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。

用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。

数据字典的组成:数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。

数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。

数据字典视图主要包括:user_xxx,all_xxx,dba_xxx三种类型。

user_tables:用于显示当前用户所拥有的所有表,它只返回用户所对应方案的所有表。

比如:select table_name from user_tables;all_tables用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表select table_name from all_tables;dba_tables:它会显示所有方案拥有的数据库表,但是要查询这种数据字典视图,要求用户必须是dba角色,或是拥有select any table系统权限,例如:当system用户查询数据字典视图dba_tables时,会返回system,sys,Scott,……方案所对应的数据库表。

用户名、权限、角色在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典中。

通过查询dba_users可以显示所有数据库用户的详细信息通过查询数据字典视图dba_sys_privs,可以显示用户所具有的系统权限通过查询数据字典视图dba_tab_privs可以显示用户所具有的对象权限通过查询数据字典视图dba_col_privs可以显示用户具有的列权限通过查询数据库字典视图dba_role_privs可以显示用户所具有的角色查询oracle中所有的系统权限,一般是DBA:select * from system_privilege_map order by name;查询oracle中的所有角色,一般是DBA:select * from dba_roles;查询oracle中所有的对象权限,一般是DBAselect distinct privilege from dba_tab_privs;查询数据库的表空间select tablespace_name from dba_tablespaces;那么,一个角色具有哪些权限呢?我们知道权限分为系统权限和对象权限,我们先看看系统权限:SQL> select * from dba_sys_privs where grantee='CONNECT';GRANTEE PRIVILEGE ADMIN_OPTION---------------------------------------------------------------------- ------------CONNECT CREATE SESSION NO SQL> select * from dba_sys_privs where grantee='RESOURCE';GRANTEE PRIVILEGE ADMIN_OPTION---------------------------------------------------------------------- ------------RESOURCE CREATE TRIGGER NO RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TYPE NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE OPERATOR NORESOURCE CREATE INDEXTYPE NO RESOURCE CREATE TABLE NO从以上结果可以看出,在oracle 10g中,CONNECT 角色只有CREATE SESSION一个系统权限(oracle 9i中是8个),而RESOURCE角色有8个系统权限另外,查看系统权限还可以这样操作:select * from role_sys_privs where role=’角色名’其实这些信息完全可以通过PL/SQL Developer方便查看。

Oracle数据库之数据字典


数据字典视图的查找 数据字典视图非常的多,该怎么样去查找呢? 有一个视图,通过这个视图可以查找所有的数据字典视图,这个视图就是 dictionary,这个视图的同义词是dict
注意:数据字典视图最经典的用法是使用别人已经写好的一些查询。大 家主要的是去练习一下“oracle常用经典sql查询.doc”里面的各个查询。
Oracle数据库之数据字典
什么叫数据字典?
数据字典指的是描述数据的数据。 举个例子: 1、我们在数据库里面创建了一个表 这个表位于哪个数据文件 这个表有哪些列 这个表的每一个列的数据类型
这个表的约束
等等 这些信息都是描述这个表的,这些信息也存放在一些表中,这些表就是数 据字典,数据字典中的数据描述的是整个数据库的各种各样的信息。 数据库要能够访问,数据字典必须能够被访问。
动态性能视图 有一些数据,例如内存中的数据、控制文件中的数据,oracle提供了一些访问 这些数据的方式:以表的方式展现这些数据。 这些数据并没有存在实际的表中,只是以表的形式展现出来,因此是一些虚拟 的表。 数据库在运行、控制文件和内存中的数据在不断地变化,那么动态性能视图中 的数据也在不停的变化,数据库重新启动以后,动态性能视图中的数据全部丢 失。 所有的动态性能视图的名称都存放在v$fixed_table里面。 动态性能视图的名字都是以v_$开始的,属主是sys。 Oracle为每一个动态性能视图提供了一个同义词,都以v$开头,例如v$session
通过这个脚本,我们发现大多数的数据字典基本表是以$结尾的
数据字典视图 1、列名含义清楚 2、视图隐藏了基本表之间的复杂关系 3、数据字典视图的所有者是sys 4、oracle还为所有的数据字典视图建立了公共的同义词,这样用户就可以通过 别名来访问数据字典视图 5、数据字典视图和同义词通过catalog.sql来建立

Oracle数据字典

得执行结果。
8. 如果利用VB提供的开发工具,则能创造丰富多彩的界面。进一步的 学习可参考有关VB数据库编程方面的书籍。
PPT文档演模板
Oracle数据字典
5. 利用Microsoft Excell访问Oracle 数据表
1. 进入Microsoft Excell 2. 建立数据源
点击:
[数据] [获取外部数据] [新建查询] 在“选择数据源”窗口中,选择〈新数据源〉,[确定],并依次进行下列输入
5.结束Oracle ODBC 测试
PPT文档演模板
Oracle数据字典
4. 通过Visual Basic访问Oracle数据表
n 设置好ODBC数据源以后,就可以利用Visual Basic 提供的数据管理 器来访问数据库了。步骤如下:
1.启动 Visual Basic 2.选择:
[外接程序] [可视化数据管理器] 3.弹出数据库管理器(VisData)的主窗口 4.选择: [文件] [打开数据库] ODBC
Oracle数据字典
PPT文档演模板
2020/11/3
Oracle数据字典
1. Oracle数据字典
n 数据字典(data dictionary)是存储在数据库中的所有对象信息的知识 库。
n Oracle RDBMS使用数据字典获取对象信息和安全信息,而用户和DBA用它 来查阅数据库信息。
PPT文档演模板
2.出现测试窗口 选择Connect连接,从[机器数据源]选择欲测试的数据名称。
PPT文档演模板
Oracle数据字典
3. Oracle ODBC 测试…
3. 进行Oracle联结 输入: 用户名称: scott 密码:tiger 服务器:Oracle10

第12讲 Oracle的数据字典的查询

第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的信息。

ER:以USER_开头的视图只可以查询出登录用户自己的对象信息。

2.ALL:以ALL_开头的视图可以查询所有用户的对象信息。

这些对象要满足条件是:你创建的,或你由权限的,或授权给public 组的。

(1)你创建的对象。

(2)对象的所有者已经授予了这些对象的某个权限给你。

(3)public角色有权限的所有对象。

3.DBA: 以DBA_开头的视图查询数据库中所有的对象信息。

[] 数据字典的常用分组:1.导航图:DICTIONARY (DICT)和DICT_COLUMNS2.可选择的内容:表(和列),视图,同义词,序列3.约束和注释:4.索引和簇:5.抽象数据类型,与ORDBMS相关的结构和LOB:6.数据库连接,实体化视图:7.存储过程,函数,程序包,触发器:8.维:9.空间分配和空间使用:10.用户,权限:11.角色:12.审计:[] 数据字典的名称规定:除了特殊的情况外,Oracle数据字典对象的所有名称都以如下3个前缀开头:USER: 查询用户所拥有的对象的信息ALL:纪录了USER的信息以及授予了public或用户的对象的信息。

oracle dictionary常用方法封装

oracle dictionary常用方法封装Oracle Dictionary(数据字典)是Oracle数据库中用来存储关于数据库对象的信息的表和视图的集合。

它提供了对数据库架构和对象的访问,包括表、索引、视图、用户、列以及其他数据库对象的定义和描述。

在Oracle数据库中,用户可以通过Oracle Dictionary来查询和修改数据库对象的属性和结构。

以下是一些常用的方法封装,用于查询和使用Oracle Dictionary中的信息:1. 获取所有表名:```sqlSELECT table_name FROM all_tables;```该查询可以返回数据库中所有表的名称。

2. 获取指定表的列名和数据类型:```sqlSELECT column_name, data_type FROM all_tab_columns WHERE table_name = 'table_name';```将"table_name"替换为要查询的表名,可以获取该表的所有列名和对应的数据类型。

3. 获取指定用户的所有表名:```sqlSELECT table_name FROM all_tables WHERE owner ='username';```将"username"替换为要查询的用户的名称,可以获取该用户拥有的所有表的名称。

4. 获取指定表的所有索引名称:```sqlSELECT index_name FROM all_indexes WHERE table_name = 'table_name';```将"table_name"替换为要查询的表名,可以获取该表上的所有索引的名称。

5. 获取表的主键名:```sqlSELECT constraint_name FROM all_constraints WHEREtable_name = 'table_name' AND constraint_type = 'P';```将"table_name"替换为要查询的表名,可以获取该表的主键约束的名称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。

比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。

当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。

Oracle中的数据字典有静态和动态之分。

静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。

以下分别就这两类数据字典来论述
静态数据字典
这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

静态数据字典中的视图分为三类,它们分别由三个前缀够成:
user_*、all_*、dba_*
user_*
该视图存储了关于当前用户所拥有的对象的信息。

(即所有在该用户模式下的对象)all_*
该试图存储了当前用户能够访问的对象的信息。

dba_*
该视图存储了数据库中所有对象的信息。

(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
区别:
从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。

具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。

没有DBA权限的用户只能看到user_*和all_*视。

user_users视图
主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。

例如执行下列命令即可返回这些信息。

select * from user_users
user_tables视图
主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。

通过此视图可以清楚了解当前用户可以操作的表有哪些。

执行命令为:
select * from user_tables
user_objects视图
主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。

该视图比user_tables视图更加全面。

例如, 需要获取一个名为“package1”的对象类型和其状态的信息,可以执行下面命令:
select object_type,status
from user_objects
where object_name=upper(…package1‟);
这里需注意upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里不是大
小写敏感的,所以在实际操作中一定要注意大小写匹配
user_tab_privs视图
该视图主要是存储当前用户下对所有表的权限信息。

比如,为了了解当前用户对table1
的权限信息,可以执行如下命令:
select * from user_tab_privs where table_name=upper('table1')
从数据字典视图ALL_OBJECTS中查找对象SCOTT.TEST对象ID。

SQL> SELECT * FROM ALL_OBJECTS WHERE OWNER =…SCOTT‟ AND
OBJECT_NAME=…TEST‟;
4.根据SCOTT.TEST对象的ID,从SYS.COL$检索出表中列的定义信息。

SQL> SELECT OBJ#,COL#,NAME FROM SYS.COL$ WHERE OBJ# =13888;
ALTER 语句修改数据表
1.修改数据表名
ALTER TABLE [方案名.]OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME;
2.修改列名
ALTER TABLE [方案名.]TABLE_NAME RENAME COLUMN OLD_COLUMN_NAME TO NEW_COLUMN_NAME;
3.修改列的数据类型
ALTER TABLE [方案名.]TABLE_NAME MODIFY COLUMN_NAME NEW_DATATYPE;
4.插入列
ALTER TABLE [方案名.]TABLE_NAME ADD COLUMN_NAME DATATYPE;
5.删除列
ALTER TABLE [方案名.]TABLE_NAME DROP COLUMN COLUMN_NAME。

相关文档
最新文档