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权限可以访问动态性能视图。
OracleEBS中文数据字典
主键表
主键列
外键列
FND_ID_FLEX_STRUCTURES
ID_FLEX_NUM
CHART_OF_ACCOUNTS_ID
GL_SUMMARY_TEMPLATES
TEMPLATE_ID
TEMPLATE_ID
快速编码列(QuickCodes)
列
快速编码类型
快速编码表
ACCOUNT_TYPE
NUMBER(15)
Y
2
2.1
2.2
表名
描述
相关视图
备注
GL_SETS_OF_BOOKS
帐簿表
GL_PERIOD_SETS
总帐日历表
GL_PERIODS
总帐日历明细表
GL_PERIODS_V
GL_CODE_COMBINATIONS
帐户表
2.3
2.3.1
帐簿表
外键(FK):
主键表
主键列
外键列
FND_CURRENCIES
N
Y
GL_LOOKUPS
No
Yes
REQUIRE_BUDGET_JOURNALS_FLAG
YES/NO
N
Y
GL_LOOKUPS
No
Yes
SUSPENSE_ALLOWED_FLAG
YES/NO
N
Y
GL_LOOKUPS
No
Yes
TRACK_ROUNDING_IMBALANCE_FLAG
YES/NO
N
Y
GL_LOOKUPS
Oracle ERP数据字典
内容索引
1
1.1
1.2
表名
描述
(word完整版)OracleEBS中文数据字典
CURRENCY_CODE
FND_ID_FLEX_STRUCTURES
ID_FLEX_NUM
CHART_OF_ACCOUNTS_ID
GL_CODE_COMBINATIONS
CODE_COMBINATION_ID
CUM_TRANS_CODE_COMBINATION_ID
GL_CODE_COMBINATIONS
PROJECT_TO_DATE_ADB
NUMBER
Y
BEGIN_BALANCE_DR
NUMBER
Y
期初借方余额(原币)
BEGIN_BALANCE_CR
NUMBER
Y
期初贷方余额(原币)
PERIOD_NET_DR_BEQ
NUMBER
Y
本期借方余额(本位币)
PERIOD_NET_CR_BEQ
NUMBER
NET_INCOME_CODE_COMBINATION_ID
GL_CODE_COMBINATIONS
CODE_COMBINATION_ID
ROUNDING_CODE_COMBINATION_ID
GL_DAILY_CONVERSION_TYPES
CONVERSION_TYPE
DAILY_TRANSLATION_RATE_TYPE
GL_PERIOD_SETS
PERIOD_SET_NAME
PERIOD_SET_NAME
GL_PERIOD_TYPES
PERIOD_TYPE
ACCOUNTED_PERIOD_TYPE
GL_TRANSACTION_CALENDAR
TRANSACTION_CALENDAR_ID
TRANSACTION_CALENDAR_ID
Oracle常用数据字典表(系统表或系统视图)及查询SQL
Oracle常用数据字典表(系统表或系统视图)及查询SQL2014年12月15日⁄数据库⁄共4187字⁄暂无评论⁄阅读861 次文章目录∙数据字典分类∙dba_开头∙user_开头∙v$开头∙all_开头∙session_开头∙index_开头∙伪表∙数据字典常用SQL查询数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。
比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。
数据字典系统表,保存在system表空间中。
查询所有数据字典可用语句“select * from dictionary;”。
数据字典分类数据字典主要可分为四部分:1)内部RDBMS表:x$*,用于跟踪内部数据库信息,维持DB的正常运行。
是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。
2)数据字典表:*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。
3)动态性能视图:gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。
4)数据字典视图:user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。
数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。
数据字典视图可分为静态数据字典视图和动态数据字典视图。
静态数据字典是指在用户访问数据字典时内容不会发生改变。
这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。
静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。
动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。
ORACLE数据字典user all dba
临时段等多个段组成,而作为非SYSTEM表空间,则因用途而异由不同段组成。
一个段(SEGMENT)由一组范围组成。一个范围(EXTENT)由一组连续的数据块组成。一个
数据块(DATABASE BLOCK)对应磁盘上的一个或多个物理块。
(3)SQLDBA>SELECT*FROM V$DBFILE;结果中,列名NAME即为数据文件名。
2.日志文件(REDO LOG FILES)
日志文件用于记录数据库所做的全部变更,以便在系统发生故障时进行恢复。每一个数
据库至少有两个日志文பைடு நூலகம்。
3.控制文件(CONTROL FILES)
控制文件虽然是一个较小的二进制文件,但很重要。如果控制文件一旦被破坏,则无法对
INIT-SQL-FILES 数据库建立时执行的命令文件
PROCESSES 多进程系统中最大进程数
数据库的物理结构
数据库的物理结构是面向操作系统的,它描述数据库中的数据的存储形式。在物理上OA
CLE数据库文件包括数据文件、日志文件和控制文件。
1.数据文件(DATA FILES)
ORACLE数据库中的数据,逻辑上存放在表空间里,但物理上却是存放在数据文件里的,数
1.对于非DBA用户
对于非DBA用户,有两条命令,即:
(1)SQL> SELECT * FROM ALL_USERS;
(2)SQL>SELECT * FROM USER_USERS;
其中,从USER-USERS表中,可以了解到该用户的默认表空间和临时表空间等信息。
2.对于DBA用户
对于DBA用户,有三条命令,即:
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
数据字典的使用
一、概念:1.数据字典(data dictionary)是Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。
我们不能手工修改数据字典里的信息。
当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。
2.数据字典中的信息包含:1.数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)2.数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间3.列的默认值4.完整性约束(integrity constraint)信息5.数据库用户名6.每个用户被授予(grant)的权限(privilege)与角色(role)7.监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作8.数据库中的其他概要信息二、组成结构1.基表(base table):用于存储相关的数据库信息。
只有Oracle 才能读写这些表。
用户很少直接访问她们,因为这些表是规范化的(normalized),且其中的大部分数据的含义是普通用户无法理解的。
2.用户访问视图(user-accessible view):用于对数据字典基表内存储的数据进行汇总与展示。
这些视图利用连接(join)及WHERE 子句简化基表中的数据,将其解码(decode)为用户可理解的信息,例如用户名,表名等。
大多数数据库用户只能访问这些视图,而不能访问基表。
Oracle 中的SYS 用户拥有数据字典中的所有基表(base table)及用户访问视图(user-accessible view)。
其他Oracle 用户不应修改(UPDATE,DELETE,或INSERT)SYS 方案中的对象定义及数据,否则将危害数据库的数据完整性(data integrity)。
oracle---数据字典
DBA_VIEWS 数据库中所有视图的文本(视图系统表)给用户授权grant select on DBA_VIEWS to ‘用户’;列名是否为空类型备注OWNER NOTNULLVARCHAR2(128) OWNER:视图的拥有者VIEW_NAME NOTNULLVARCHAR2(128) VIEW_NAME:视图名字TEXT_LENGTH NUMBER TEXT_LENGTH:视图文本长度TEXT LONG TEXT:视图文本。
当行来自正确的容器中,可能返回正确的值TEXT_VC VARCHAR2(4000) TEXT_VC:这个列可能会截断视图文本TYPE_TEXT_LENGTH NUMBER TYPE_TEXT_LENGTH:视图的类型语句的长度TYPE_TEXT VARCHAR2(4000) TYPE_TEXT:视图的类型语句OID_TEXT_LENGTH NUMBER OID_TEXT_LENGTH:带WITH OID语句的视图的长度OID_TEXT VARCHAR2(4000) OID_TEXT:带WITH OID语句的视图VIEW_TYPE_OWNER VARCHAR2(128) VIEW_TYPE_OWNER:typed view的拥有者VIEW_TYPE VARCHAR2(128) VIEW_TYPE:视图是否一个typed view SUPERVIEW_NAME VARCHAR2(128) SUPERVIEW_NAME:超级视图名字EDITIONING_VIEW VARCHAR2(1) EDITIONING_VIEW:保留将来使用READ_ONLY VARCHAR2(1) READ_ONLY:视图是否只读CONTAINER_DATA VARCHAR2(1) CONTAINER_DATA:视图是否包含指定容器数据BEQUEATH VARCHAR2(12) BEQUEATH:可以是CURRENT_USER或者DEFINER。
计算机oracle数据字典1
.3 工艺路线子项表(T_ROUTITEM)
序 数据名 号
类型
名称及描述
1 PRTNO
Varchar2(24) 物料号, t_routdef(prtno,seqno)
参考
2 SEQNO
Number(8)
工序号(OPERATIONAL SEQUENCE):见 T_ROUTDEF, 参考 t_routdef(prtno,seqno)
3 TOOLCODE
Varchar2(24) 工装代码(TOOL CODE):本工序所用工 装的物料号。 参考 t_prtbasdef(prtno) where prttype=’T’
4 TOOLPQTY Number(6) 工装使用数量:本工序所用工装的数 量。>0
.4 工艺辅料定义表(T_ROUTFLITEM)
关键工序标记。0,否;1,是
加工部门(ROUTING DEPARTMENT): 标识负责该工序的车间(分厂)。部 门编号规则由用户自行规定, 参考 t_dept(seqdept)
工作中心编号(WORK
CENTER
CODE):标识该工序所用工作中心的
代码。工作中心编号规则由用户自
行规定,
参考
t_wkcdef(wkccode,rescode)
27 SEQNOTE Varchar2(2000) 工序加工描述
28 INVYORNFra bibliotekVarchar2(1) 工序是否存在在制品库存状态,0不存在;1-存在 缺省0 not null
29 SEQQTY
Number(10,3) 下道工序对上道工序的每对数量, 缺省1 not null
30 NOPRTAVELZ Varchar2(1) 是否使用平均批量
oracle 常用数据字典
Oracle 常用数据字典以“USER_”开头:记录用户对象的信息,如user_tables包含用户创建的所有表;user_views等;以“ALL_”开头:记录用户对象的信息及被授权访问的对象信息;以“DBA_”开头:记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中所有用户的信息,DBA的信息包含user和all的信息;以“V$ ”开头:当前实例的动态视图,包含系统管理和优化使用的视图;以“GV_”开头:分布环境下所有实例的动态视图,包含系统管理和优化使用的视图,这里的GV表示Global v$的意思;oracle常用数据字典,oracle10增加了不少数据字典,10g r1 有1713个,r2有1870个:1 基本的数据字典:DBA_TABLES 所有用户的所有表的信息;DBA_TAB_COLUMNS 所有用户的表的列(字段)信息;DBA_VIEWS 所有用户的所有视图信息;DBA_SYNONYMS 所有用户同义词信息;DBA_SEQUENCES 所有用户序列信息;DBA_CONSTRAINTS 所有用户的表约束信息;DBA_INDEXES 所有用户索引的简要信息;DBA_IND_COLUMNS 所有用户索引的列信息;DBA_TRIGGERS 所有用户触发器信息;DBA_SOURCE所有用户存储过程源代码信息;DBA_PROCEDUS 所有用户存储过程;DBA_SEGMENTS 所有用户段(表,索引,Cluster)使用空间信息;DBA_EXTENTS 所有用户段的扩展段信息;DBA_OBJECTS 所有用户对象的基本信息(包括素引,表,视图,序列等);CAT 当前用户可以访问的所有的基表;TAB 当前用户创建的所有基表,视图,同义词等;DICT 构成数据字典的所有表的信息;2 与数据库组件相关的数据字典:2.1数据库:V$DATABASE同义词V_$DATABASE,记录系统的运行情况;2.2表空间:DBA_TABLESPACES 记录系统表空间的基本信息;DBA_DATA_FILES 记录系统数据文件及表空间的基本信息;DBA_FREE_SPACE 记录系统表空间的剩余空间的信息;2.3控制文件:V$CONTROLFILE 记录系统控制文件的路径信息;V$PARAMETER 记录系统各参数的基本信息;v$CONTROLFILE_RECORD_SECTION 记录系统控制运行的基本信息;2.4数据文件:DBA_DATA_FILES 记录系统数据文件及表空间的基本信息;v$DATAFILE 记录来自控制文件的数据文件信息;v$FILESTAT 记录数据文件读写的基本信息;3查看VGA信息:--可以通过以下几个动态性能视图查看信息:V$sysstat 系统统计信息V$sesstat 用户会话统计信息V$pgastat 显示内存使用统计信息V$sql_workarea SQL游标所用工作区的信息V$ sql_workarea_active 当前系统工作区的信息--在V$process动态性能视图中可以查询到每个Oracle进程的PGA分配的内存和已使用的内存情况,其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。
跟我学Oracle从入门到精通培训教程——Oracle 系统中的数据字典
二、数据字典的具体应用及示例
1、熟悉静态数据字典中的DBA_xxx视图 (1)DBA_xxx视图中包含了当前数据库系统中的所有对象 信息 在建立用户时,Oracle系统会把用户的相关信息存 在数据字典中,当给用户授权或是角色时,Oracle 也会将权限和角色的信息存放到数据字典中。 由于在DBA_xxx视图中包含了当前数据库系统中的 所有对象信息。所以,为了其安全性考虑,一般只 允许数据库管理员角色的用户才可以访问数据库管 理员视图。
4、Oracle系统中的数据字典有静态和动态之分 静态数据字典主要是在用户访问数据字典时不会发生 改变的,但动态数据字典是依赖数据库运行的状况和性能 的,它反映数据库运行的一些内在的信息,所以在访问这 类数据字典时往往不是一成不变的。 5、Oracle系统专门使用System表空间存放数据字典信息 (1)数据字典表是存在System表空间中并由Oracle系统维 护和管理 当执行DDL语句时,Oracle系统会修改数据字典。 正因为Oracle使用System表空间存放数据字典的相 关信息,所以不建议在System表空间上直接建立数 据库表、索引和簇等对象。 在SYSTEM表空间中,用户不要在这里进行任何的修 改动作--比如不要添加或者删除对象。主要的目的 是防止一不小心,对其进行了不可恢复的操作。
(2)DBA_xxx视图的主要作用
2、熟悉静态数据字典中的USER_XXX视图 (1)USER_XXX视图代表当前用户所拥有的对象 由于在该视图中记录有描述查询该视图用户拥有的对 象,因此不同的用户不可能看到相同的内容。 (2)USER_XXX视图的主要作用
3、熟悉静态数据字典中的ALL_XXX视图 (1)该视图记录用户可以访问到的各个数据对象 在ALL_XXX视图(也称为扩展用户视图)中,包含了 当前登录账户可以访问的所有对象信息,还包括了被授权 的可以访问的其它用户的对象信息--也就是自己拥有的以 及别人授权自己可以访问的所有数据对象的权限,比如 ALL_TABLES视图包含的记录既可以描述自己的数据库表, 也可以描述给定可视权限的、属于其他用户的数据库表。 (2)有了USER_XXX视图,为什么还要提供ALL_XXX视图 有时候,数据库管理员会给某个用户授权,让其可以 查看其它用户的对象信息,以利于他们协助管理数据 库系统。 为此,那个被授权的用户,就需要通过ALL_XXX视图 来查看其被授权的其他用户的系统运行信息。
ORACLE的数据字典
Hale Waihona Puke ORACLE的数据字典 的数据字典
Vision 1.0
自强不息 厚德载物
ORACLE的数据字典 ORACLE的数据字典
数据字典
ORACLE存放数据库结构的一组表和视图 存放数据库结构的一组表和视图 有3类 类 user_* 用户所拥有的对象的信息 all_* 用户可以访问的所有对象的信息 dba_* 数据库中所有对象的信息 通过dict能查到所有的数据字典视图信息 -通过 能查到所有的数据字典视图信息 select * from dict; sys拥有数据字典 sys拥有数据字典 数据字典的维护由数据库自动完成
ORACLE的数据字典 ORACLE的数据字典
数据字典实例 user_,all_,dba_objects 数据库对象的信息 user_,all_,dba_tables 表的信息 user_,all_,dba_indexes 索引的信息 user_,all_,dba_views 视图的信息 user_,all_,dba_sequences 序列的信息 user_,all_,dba_users 用户的信息 user_,all_,dba_constraints 约束的信息 user_,all_,dba_cons_columns 有约束的表列 的信息 user_,all_,dba_ind_columns 有索引的表列的 信息
ORACLE的数据字典 ORACLE的数据字典
举例 查询表EMP上的有约束的列 查询表 上的有约束的列 • Select constraint_name,table_name, • column_name,position from user_cons_columns where table_name = ‘EMP’ ; 查询当前用户拥有的所有视图 • Select view_name,text from user_views; 查询当前用户所拥有的数据库对象 • Select object_name,object_type from user_objects;
ORACLE 系统常用数据字典
E.1 对象、表、视图、同义词、序列DBA_OBJECTS(实例中的对象)存放的对象包括:CLUSTER、DATABASE_LINK、FUNCTION,INDEX,PACKAGE,PROCEDURE,SEQUENCE,SYNONYM,TABLE,TRIGGER,VIEW,TYPE,DIRECTORY等。
---------------------------------------------------------------列名说明---------------------------------------------------------------OWNER VARCHAR2(30) 对象主人OBJECT_NAME VARCHAR2(128) 对象名SUBOBJECT_NAME VARCHAR2(30) 字对象名,如分区OBJECT_ID NUMBER 对象的标识DATA_OBJECT_ID NUMBER 对象的对象数OBJECT_TYPE VARCHAR2(18) 对象的类型,如INDEX CREATED DATE 建立对象的日期及时间LAST_DDL_TIME DATE 最后一次执行DDL的时间(含grants revokes) TIMESTAMP VARCHAR2(19) 对象生成的日期及时间STATUS VARCHAR2(7) 对象的状态: VALID, INVALID TEMPORARY VARCHAR2(1) 标识为临时表GENERATED VARCHAR2(1) 标识对象是否为系统生成SECONDARY VARCHAR2(1) 是否为第2次建立演示索引---------------------------------------------------------------DBA_TABLES (实例中的表)---------------------------------------------------------------列名说明---------------------------------------------------------------OWNER 表的所有者TABLE_NAME 表名TABLESPACE_NAME 包含表的表空间; NULL为分区表CLUSTER_NAME 表所属的CLUSTER名IOT_NAME 表的索引结构名PCT_FREE 块中自由空间百分比,NULL为分区表PCT_USED 块中使用空间百分比,NULL为分区表INI_TRANS 初始事务如口数,NULL为分区表MAX_TRANS 最大事务如口数,NULL为分区表INITIAL_EXTENT 初始分配字节数,NULL为分区表NEXT_EXTENT 下次扩展字节数,NULL为分区表MIN_EXTENTS 最小扩展次数,NULL为分区表MAX_EXTENTS 最大扩展次数,NULL为分区表PCT_INCREASE 相对上次增长百分比,NULL为分区表FREELISTS 段的自由分配列表数,NULL为分区表FREELIST_GROUPS 组的自由分配列表数,NULL为分区表LOGGING 登录属性,NULL为分区表BACKED_UP 上次改变以来备份标记NUM_ROWS 表中的行数BLOCKS 表中的块数EMPTY_BLOCKS 表中分配但未使用的块数AVG_SPACE 表中分配但未使用的平均数CHAIN_CNT 表中产生行连接(从一个块到另一各块)的数AVG_ROW_LEN 平均行的字节数AVG_SPACE_FREELIST_BLOCKS 自由列表中所有块的平均自由空间NUM_FREELIST_BLOCKS 自由列表的块数DEGREE 对于查询表的每个实例线程数INSTANCES 表中事务交叉数CACHE 是否为缓存表TABLE_LOCK 是否使能锁SAMPLE_SIZE 分析的样例大小LAST_ANALYZED 最后分析的时间PARTITIONED 表是否为分区表IOT_TYPE 如果为索引结构表,则IOT_TYPE 为 IOT 或 IOT_OVERFLOW否则为NULLTEMPORARY 仅是当前会话使用?SECONDARY 是否为第2次建立演示索引NESTED 是否嵌套表BUFFER_POOL 缺省缓冲区的名字, NULL 为分区表ROW_MOVEMENT 分区时行是否移动GLOBAL_STATS 没有合并的统计计算?USER_STATS 用户是否统计过?DURATION 如果是临时表,则在 sys$session 或sys$transaction 中的持续时间SKIP_CORRUPT 是否跳过冲突块(使能或不使能)MONITORING 监视---------------------------------------------------------------DBA_VIEWS (实例中的视图)---------------------------------------------------------------列名说明---------------------------------------------------------------OWNER VARCHAR2(30) 视图的主人VIEW_NAME VARCHAR2(30) 视图的名字TEXT_LENGTH NUMBER 视图的文本长度TEXT LONG 视图的文本TYPE_TEXT_LENGTH NUMBER 类型视图的子句长度TYPE_TEXT VARCHAR2(4000) 类型视图的子句OID_TEXT_LENGTH NUMBER 类型视图的WITH OID子句长度 OID_TEXT VARCHAR2(4000) 类型视图的WITH OID子句VIEW_TYPE_OWNER VARCHAR2(30) 类型视图的主人VIEW_TYPE VARCHAR2(30) 类型视图---------------------------------------------------------------DBA_SYNONYMS(实例中的同义词)---------------------------------------------------------------列名说明---------------------------------------------------------------OWNER VARCHAR2(30) 同义词的主人SYNONYM_NAME VARCHAR2(30) 同义词的名字TABLE_OWNER VARCHAR2(30) 表的主人TABLE_NAME VARCHAR2(30) 表的名字DB_LINK VARCHAR2(128) 数据库连接名---------------------------------------------------------------DBA_SEQUENCES(实例中的序列)---------------------------------------------------------------列名说明---------------------------------------------------------------SEQUENCE_OWNER VARCHAR2(30) 序列的主人SEQUENCE_NAME VARCHAR2(30) 序列名字MIN_VALUE NUMBER 最小值MAX_VALUE NUMBER 最大值INCREMENT_BY NUMBER 增加步长CYCLE_FLAG VARCHAR2(1) 循环标记ORDER_FLAG VARCHAR2(1) 顺序标记CACHE_SIZE NUMBER 缓存大小LAST_NUMBER NUMBER 最后的序列值---------------------------------------------------------------E.2 索引、Cluster及限制(constraints)DBA_INDEXES ( 实例中索引)---------------------------------------------------------------列名说明--------------------------------------------------------------- OWNER VARCHAR2(30) 索引主人INDEX_NAME VARCHAR2(30) 索引名字INDEX_TYPE VARCHAR2(27) 索引类型TABLE_OWNER VARCHAR2(30) 表的主人TABLE_NAME VARCHAR2(30) 表的名字TABLE_TYPE VARCHAR2(11) 表的类型UNIQUENESS VARCHAR2(9) 是否唯一索引COMPRESSION VARCHAR2(8) 是否压缩PREFIX_LENGTH NUMBER 前缀长度TABLESPACE_NAME VARCHAR2(30) 表空间名INI_TRANS NUMBER 初始事务数MAX_TRANS NUMBER 最大事务数INITIAL_EXTENT NUMBER 初始扩展大小NEXT_EXTENT NUMBER 下一次扩展大小MIN_EXTENTS NUMBER 最小扩展次数MAX_EXTENTS NUMBER 最大扩展次数PCT_INCREASE NUMBER 相对前一次的增长百分比PCT_THRESHOLD NUMBER 块空间开始分配百分比INCLUDE_COLUMN NUMBER 包括的列数FREELISTS NUMBER 自由列表数FREELIST_GROUPS NUMBER 自由列表组数PCT_FREE NUMBER 块中用于更新的百分比LOGGING VARCHAR2(3) 日志信息BLEVEL NUMBER B*树从根到枝的索引深度LEAF_BLOCKS NUMBER 索引中叶块的数量DISTINCT_KEYS NUMBER 不同键的数目AVG_LEAF_BLOCKS_PER_KEY NUMBER 每个键叶块的平均数AVG_DATA_BLOCKS_PER_KEY NUMBER 每个键数据块的平均数CLUSTERING_FACTOR NUMBER 基表行的排序数,如果该值:* 接近块的大小,则表非常容易排序 * 解决行的大小,则容易随机排序STATUS VARCHAR2(8) 状态NUM_ROWS NUMBER 行的数量SAMPLE_SIZE NUMBER 样本大小LAST_ANALYZED DATE 最后分析时间DEGREE VARCHAR2(40) 扫描索引时的实例数INSTANCES VARCHAR2(40) 实例数PARTITIONED VARCHAR2(3) 是否被分区TEMPORARY VARCHAR2(1) 是否存放在临时表空间GENERATED VARCHAR2(1) 是否是有系统产生索引名SECONDARY VARCHAR2(1) 是否是第2个对象创建BUFFER_POOL VARCHAR2(7) 缓冲区大小USER_STATS VARCHAR2(3) 是否有用户统计过DURATION VARCHAR2(15) 临时表的为期PCT_DIRECT_ACCESS NUMBER 访问百分比ITYP_OWNER VARCHAR2(30) 本地索引的主人ITYP_NAME VARCHAR2(30) 本地索引的名字PARAMETERS VARCHAR2(1000) 本地的参数GLOBAL_STATS VARCHAR2(3) 全局统计标记DOMIDX_STATUS VARCHAR2(12) 本地索引状态:null-非本地;valid-本地索引;idxtyp-invld:本地索引无效DOMIDX_OPSTATUS VARCHAR2(6) 本地索引操作状态:null-非本地;valid-本地索引操作没有错误; failed:本地索引操作有错误FUNCIDX_STATUS VARCHAR2(8) 本地索引函数状态:null-非基本函数索引;valid-函数索引可用;failed: 函数索引不可用。
oracle数据字典
1,数据字典1-1、用户--查看当前用户的缺省表空间select username,default_tablespace from user_users;--查看当前用户的角色select * from user_role_privs;--查看当前用户的系统权限和表级权限select * from user_sys_privs;select * from user_tab_privs;--显示当前会话所具有的权限select * from session_privs;--显示指定用户所具有的系统权限select * from dba_sys_privs where grantee='GAME';--显示特权用户select * from v$pwfile_users;--查看用户下所有的表select * from user_tables;--查看用户下所有的表的列属性select * from USER_TAB_COLUMNS where table_name=:table_Name; --显示用户信息(所属表空间,用户名区分大小写)select default_tablespace,temporary_tablespacefrom dba_users where username='SCOTT';--显示用户的PROFILEselect profile from dba_users where username='SCOTT';1-2,表--查看用户下所有的表select * from user_tables;--查看名称包含log字符的表select object_name,object_id from user_objectswhere instr(object_name,'LOG')>0;--查看某表的创建时间select object_name,created from user_objects where object_name=u pper('&table_name');--查看某表的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');--查看放在Oracle的内存区里的表select table_name,cache from user_tables where instr(cache,'Y')>0;1-3,索引--查看索引个数和类别select index_name,index_type,table_name from user_indexes order by table_name;--查看索引被索引的字段select * from user_ind_columns where index_name=upper('&index_n ame');--查看索引的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');1-4,序列号--查看序列号,last_number是当前值select * from user_sequences;1-5,视图--查看视图的名称select view_name from user_views;--查看创建视图的select语句set view_name,text_length from user_views;set long2000; 说明:可以根据视图的text_length值设定set long的大小select text from user_views where view_name=upper('&view_name');1-6,同义词--查看同义词的名称select * from user_synonyms;1-7,约束条件--查看某表的约束条件select constraint_name, constraint_type,search_condition,r_constraint_namefrom user_constraints where table_name = upper('&table_name'); 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_name order by cc.position;1-8,存储函数和过程--查看函数和过程的状态select object_name,status from user_objects where object_type='FU NCTION';select object_name,status from user_objects where object_type='PR OCEDURE';--查看函数和过程的源代码select text from all_source where owner=user and name=upper('&pl sql_name');第二部分实例用户中1,实例中的用户--Nomal 普通的用户角色--sysdba 超级用户管理员--syspoer 系统管理员--sys 网络管理员用户,具有最高的数据库管理权限,可以创建数据库--system 本地管理员角色,具有权限仅次于sys的最高的数据库管理权限,不可以创建数据库--scott 普通用户,默认的权限是锁住的,需要自己打开------------------------------------sys system scott 都是默认的用户,我们也可以自己创建用户去连接数据库,但是没有任何权限,需要dba给予权限---表空间:包含表视图索引---段:包含数据段索引段---数据块: 数据块是最小的逻辑存储单元2创建表2.1创建表create table tb_user(stu_num int primary key,stu_name varchar2(20) not null,stu_sex char(4) default('男') check (stu_sex in('男','女')),stu_birthday date);2.2查询表--查看表的存储信息select * from user_tables where table_name='TB_USER';--查看表的相关信息(属性类型和长度)select * from user_tab_columns where table_name='TB_USER';2.3添加信息insert into tb_user(stu_num,stu_name) values('1001','a');insert into tb_user(stu_num,stu_name,stu_sex) values('1002','b','女'); insert into tb_user(stu_num,stu_name,stu_sex,stu_birthday)values(to_ number('1003'),'c','男',to_date('1997-02-03','yyyy-mm-dd'));select * from tb_user;2.4删除表drop table tb_user;3数据类型--标量类型--数值型 : number(integer,float)--字符型 : char(2000) varchar(4000) long(2G)--日期型 : date timestamp(不推荐)--大字段LOB : BLOB CLOB--属性类型--%type--%rowtype4创建视图视图: (1)查询不会影响基表(2)增删改视图的时候,更新的相应信息同时也会更新基表的对应信息(3)删除视图基表还存在不会影响select * from tb_user;4-1创建视图create view v_user as select * from tb_user;4-2查询视图select * from v_user;4-3删除视图drop view v_user;4-4添加视图数据insert into v_user(stu_num,stu_name,stu_sex,STU_BIRTHDAY) value s(1005,'甘小娟','女',to_date('1993-5-6','yyyy-mm-dd'));insert into v_user(stu_num,stu_name,stu_sex,STU_BIRTHDAY) value s(1009,'甘娟','女',sysdate);4-5删除视图内容delete from v_user where stu_num=100;4-6修改视图内容update v_user set stu_name='大话单'where stu_num=1002;5索引--创建索引针对表中的某一个经常用的字段---在查询的时间会自动调用,会使查询的速度加快5-1创建索引 index语法:create index 索引名 on 表名(索引字段)create index index_emp_sal on emp(sal);---根据索引字段查询,在查询时索引是自动调用的select * from emp where sal between1000and2000;5-2删除索引drop index index_emp_sal;6同义词synonym--创建同义词:对同义词的操作会影响到原表 synonym--给emp创建同义词e ,e 就可以代表empcreate synonym e for emp;--e=emp 意思相同select * from e;update e set sal=801where ename='SMITH';--删除同义词drop synonym e;7连接7-1等值连接select * from emp,dept where emp.deptno=dept.deptno order by e mpno;select emp.*,dname,loc from emp,dept where emp.deptno=dept.dep tno order by empno;7-2右连接 --(+)在左边打印了没有员工的部门 (+)在左边的为右连接,在右边的为左连接select emp.*,dname,loc from emp,dept where emp.deptno(+)=dept. deptno order by empno;7-3左连接 --(+)在右边select emp.*,dname,loc from dept,emp where emp.deptno=dept.deptno(+)order by empno;7-4用union连接--结果集的操作 union的左边和右边查询的结果在一个表中,但是两边显示的结果的个数和类型要一样select empno,ename from emp union select deptno,dname from de pt;8 PL/SQL代码快代码块:描述一个过程里面包含一个语句语法:declare声明部分begin业务逻辑处理exception异常处理部分end注释:在声明部分定义我们需要使用的变量,不用在每个变量前使用'declare'来声明,变量名不用使用'@'符号8-1,块的举例declarenum number(5);--定义的两个变量str varchar2(50);m number:=10;--在变量声明的部分给变量初始值tsal number;begin--给变量赋值str:='王向新是个大逗比.....';--通过select语句给多个变量赋值select count(*),sum(sal) into num,tsal from emp;dbms_output.put_line(num ||'人的总工资为:'||tsal);--into 是给变量赋值-- select count(*) into num from emp;--把值打印出来,在上面的Output看结果--在PL/SQL中字符串拼接用 '||'num:=num+m;dbms_output.put_line(num || str || m ||'--->' || tsal);end;--查询员工的数量,如果数量大于5就打印 '哈哈'否则打印'呵呵'declarenum number;beginselect count(*)into num from emp where sal>3000;if(num>5)thendbms_output.put_line('员工的数量为:'|| num);dbms_output.put_line('哈哈');elsedbms_output.put_line('员工的数量为:'|| num);dbms_output.put_line('呵呵');end if;end;--------------------------declarenum number;beginselect count(*)into num from emp where sal>3000;if(num>5)thendbms_output.put_line('@@@@@员工的数量为:'|| num);dbms_output.put_line('哈哈');elseif(num>3)thendbms_output.put_line('%%%%%%%%%%员工的数量为:'|| num);dbms_output.put_line('呵呵');elsedbms_output.put_line('&&&&&&&&&&&员工的数量为:'|| num);dbms_output.put_line('嘻嘻');end if;end if;end;8-2连续if选择declareesal number;begin--查询SMITM的工资赋值给esalselect sal into esal from emp where ename='SMITH';if(esal<1000)thendbms_output.put_line('小伙子,要努力啊');end if;if(esal>1000and esal<=2000)thendbms_output.put_line('小伙子,继续努力啊');end if;if(esal>2000and esal<=3000)thendbms_output.put_line('小伙子,还不错');end if;if(esal>3000and esal<=4000)thendbms_output.put_line('小伙子,很牛啊');end if;if(esal>4000and esal<=5000)thendbms_output.put_line('土豪啊,我们做朋友吧'); end if;if(esal>5000)thendbms_output.put_line('有钱的任性,没钱的认命'); end if;end;--------------------------------------------8-3 if....elsif...选择declareesal number;begin--查询SMITM的工资赋值给esal*************select sal into esal from emp where ename='SMITH'; if(esal>2000)thendbms_output.put_line('小伙子,要努力啊');elsif(esal>1000and esal<=2000)thendbms_output.put_line('小伙子,继续努力啊'); elsif( esal<=1000)thendbms_output.put_line('小伙子,要努力啊');end if;end;----------------------------------8-4 case ....when选择declareesal number;str varchar2(40);n int;m number;name varchar2(20);beginname:='&请输入员工姓名';--弹出窗口输入--将Scott的工资给esalselect sal into esal from emp where ename=name; --变量赋值m:=esal/1000;n:=esal/1000;-- esal:=esal/1000;if(n>m)thenn:=n-1;end if;case nwhen0thenstr:='不及格';when1thenstr:='有进步';when2thenstr:='还不错';when3thenstr:='很牛';when4thenstr:='盆友';when5thenstr:='巅峰';end case;dbms_output.put_line(n||'-->'||str);end;----------------------------------8-5LOOP 循环declarem number;beginm:=1;loopdbms_output.put_line('aaa-->'||m);m:=m+1;exit when m=10;--当 m=10 的时候就退出,终止循环end loop;end;---------------------------------8-6 while 当什么的时候declarem number;beginm:=1;while m<10loopdbms_output.put_line('aaa-->'||m);m:=m+1;end loop;end;8-7 for 相当于foreachdeclarer emp%rowtype;--属性类型beginfor r in(select * from emp)loopdbms_output.put_line(r.ename ||'-->'||r.empno);end loop;end;9异常类--oracle中的异常分为:系统异常(编号 0~20000) 和用户异常--用户异常(编号可用 20001 到 20999)--系统异常:直接由oracle数据库进行管理,当出现了系统异常,数据库会自动提示--用户异常:--1 在声明部分声明异常--2 在代码部分出现异常通过raise关键字抛出异常--3 在exception部分通过when 来处理异常--4 在exception部分我们可以通过raise_application_error(错误编号,'错误提示');--也就是说将异常以系统提示的形式弹出,告知用户--以后的oracle系统中抛出异常以后,可以通过 'ORA-编号' 搜索解决方案--对异常的处理declareme01 exception;me02 exception;score number;beginscore:='&请输入成绩';if(score<0)then--抛出第一种异常,提示分数小于0 不合法raise me01;else if(score>100)then--抛出第二种异常,提示分数大于100 不合法raise me02;elsedbms_output.put_line('成绩合法'||score);end if;end if;exceptionwhen me01 thendbms_output.put_line('分数小于0 不合法,输入的为:'||score);--系统异常,会弹出error框提示--raise_application_error(-20001,'数据错误');when me02 thendbms_output.put_line('分数大于100 不合法,输入的为:'||score); end;。
oracle数据字典简介
饰符、属性允许的长度和精度等。
31
杭州电子科技大学
Oracle 数据库应用与设计
抽象数据类型数据字典视图
如果需要使用ref,那么可以查看user_refs视图。嵌套表 和可变数组可以通过user_coll_types数据字典描述。当然,
可以使用user_nested_tables和user_varrays来查看更加详细
20
杭州电子科技大学
Oracle 数据库应用与设计
主要内容
•什么是数据字典 •数据字典分类 •常见的数据字典视图
21
杭州电子科技大学
Oracle 数据库应用与设计
•路线图的数据字典视图 •目录和对象的数据字典视图 •回收站的数据字典视图 •约束和注释的数据字典视图 •索引和群集的数据字典视图 •抽象数据类型的数据字典视图 •数据库链接和物化视图的数据字典视图 •触发器、过程、函数和程序包的数据字典视图 •空间分配和使用的数据字典视图 •用户和权限的数据字典视图 •审核的数据字典视图
Oracle 数据字典简介
杭州电子科技大学
Oracle 数据库应用与设计
本章目标
•理解数据字典含义 •能初步掌握数据字典的使用
2
杭州电子科技大学
Oracle 数据库应用与设计
主要内容
•什么是数据字典 •数据字典分类 •常见的数据字典视图介绍
3
杭州电子科技大学
Oracle 数据库应用与设计
什么是数据字典
数据字典是Oracle存放有关数据库信息的地方, 其用途是用来描述数据的。比如一个表的创建者信 息,创建时间信息,所属表空间信息,用户访问权
限信息的视图等。 数据字典是由一系列拥有数据库元数据信息 的数据字典表和用户可以读取的数据字典组成。
数据字典总结(Oracle10g)
数据字典总结(Oracle 10g)Oracle data dictionary1 To see some kind of fields belong to some table--查看字段中含有”A”并且所有者是”Test”的表SQL>select table_name from dba_tab_cols where column_name='A'and owner='TEST';2 rename a table to a new one--重命名表名SQL>rename oldtablename to newtablename3 modify a field,changing its data type.Datum empty needed first.--修改字段的类型SQL>altertable testtable modifycolumn id varchar2(12)4 rename a column of a table to a new one--重命名字段名SQL>altertable testtable rename column id to iden;5 delete a column form a table--删除字段SQL>altertable testtable dropcolumn id;6 add a new field to a table--添加字段SQL>altertable testtable add newfield varchar2(2);7 To view privileges or roles one user own--查看当前用户下的表权限SQL>select*from user_tab_privs;--查看当前用户下的角色权限SQL>select*from user_role_privs;8 To see current database name--查看当前数据库名SQL>selectnamefrom v$database;9 To see tablespace user own--查看当前用户下的表空间SQL>select*from dba_tablespaces;--for more details--查看当前用户下的文件名,表空间,字节数,用户块的信息SQL>select file_name,tablespace_name,bytes,user_blocks from dba_data_files;10 To create your own tablespace--创建一个表空间SQL>Create tablespace MyFirstSpace datafile 'c:/oracle/product/9.2.0/dbs/MyFirstSpace.ora'size 512M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED default storage (initial 128K next 2M pctincrease 0);11 drop a tablespace--删除一个半空间SQL>drop tablespace MyFirstSpace including contents;12 alter its owner for tablespace--改变表空间的拥有者SQL>alter tablespace MyFirstSpace ownerto shen;13 resize tablespace--重新设置表空间的大小SQL>alterdatabase datafile 'c:/oradata/k12db/MyFirstSpace.dbf' resize 500M;14 to see all tables one user own--For current user--查看当前用户下的所有的表SQL>select table_name from user_tables;--for all users--查看所有用户下的所有的表SQL>select table_name from all_tables;15 see your system table props$--查看系统设置的命令SQL>select*from props$;16 update character set to needed--修改数据库字符集的例子SQL>alterdatabasecharacterset ZHS16GBK;17 View current time--查看当前的系统时间SQL>select sysdate from dualwhile in sql server getdate is used as a function--sql server的语法SQL>select getdate()18 select current date--查看当前的日期SQL>selectcurrent_datefrom dual19 Change current date display type--设置日期的显示格式的方法SQL>alter session set NLS_date_formate='dd-mon-yyyy hh:mi:ss';20 query current database instance--查看当前的数据库实例名SQL>select instance_name from v$instance;21 domain integrity operationSQL>altertable tbname addconstraint pk_tbname primarykey(n1)22 referential integrity operation--添加外键的语法SQL>altertable emp addconstraintconstraint fk_tbname foreignkey(n1)references tbname(n1)-- initially deferred deferrable23 Check operation--添加check的语法SQL>altertable emp addconstraint ck_emp_agender check(agender='男'or agender='女')24 Create a table through a subquery--通过子查询创建表的语法SQL>createtable emp_41 asselect id, last_name, userid,start_datefrom s_emp where dept_id = 41;25 A plex example on table structure--复杂的表结构SQL>CREATETABLE s_emp(id NUMBER(7)CONSTRAINT s_emp_id_pk PRIMARYKEY,last_name VARCHAR2(25)CONSTRAINT s_emp_last_name_nn NOTNULL,first_name VARCHAR2(25),userid VARCHAR2(8)CONSTRAINT s_emp_userid_nn NOTNULLCONSTRAINT s_emp_userid_uk UNIQUE,start_date DATE DEFAULT SYSDATE,ments VARCHAR2(25),manager_id NUMBER(7),title VARCHAR2(25),dept_id NUMBER(7)CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),salary NUMBER(11,2),mission_pct NUMBER(4,2)CONSTRAINT s_emp_mission_pct_ck CHECK(mission_pct IN(10,12.5,15,17.5,20)));26 search constraint defination from a table--查看某个表下的约束名,约束类型,查询条件,重命名的名字SQL>select constraint_name, constraint_type,search_condition, r_constraint_namefrom user_constraintswhere table_name ='&table_name';27 query result set between 80 and 100--查看记录在80至100之间的数据SQL>select*from((select rownum as numrow, c.*from(select[field_name,...] from table_name where condition1 orderby condition2) c)where numrow > 80 and numrow <= 100 )orderby condition3;28 init a table by using Insert into select syntax--insert的语法初始化表SQL>insertinto testc(id,addr)select(empid,empaddr)from testb 29 drop a constraint--删除约束SQL>altertable fortest dropconstraint fortest_cons30 create a user--创建一个用户createuser gdcc identified by oracle default tablespace tsg users Temporary tablespace Temp;31 full description on create a user--更详细的创建用户的语法SQL>CREATEUSER sidneyIDENTIFIED BY out_standing1DEFAULT TABLESPACE exampleQUOTA 10M ON exampleTEMPORARY TABLESPACE tempQUOTA 5M ONsystemPROFILE app_userPASSWORD EXPIRE;32 create a procedure--创建存储过程,执行的方法SQL>create or replace procedure get_newsasaa number;beginselect count(*)into aa from cf_news;dbms_output.put_line('aa='||aa);end;--excute the procedureSQL>execute get_news;aa=333 A simple sample on create index--创建视图的语法SQL>create or replace view testview3asselect*from test3;34 a view by using aggregate function--创建个带有聚集函数的视图SQL> create view testview4asselect id,sum(id) test3_id from test3groupby id;35 Exp 和Imp的帮助的查看方法:Dos命令下:Exp help=yImp help=y36 删除用户下对象的方法最方便的方法就是 drop user aaa cascade;然后重建用户。
Oracle 数据字典
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中还有一些不常用的数据字典表,但这些表不是真正的字典家族,他们都是一些重要的单一的视图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--查看VGA信息:
show sga;
select * from v$sgastat;
--可以通过以下几个动态性能视图查看信息:
V$sysstat 系统统计信息
V$sesstat 用户会话统计信息
SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name
o alter tablespace sales online;
o 第五步:查询dba_data_files确认
o 创建用户,指定默认表空间,磁盘配额
o create user rose identified by rose default
V$ 当前实例的动态视图,包含系统管理和优化使用的视图;
GV_ 分布环境下所有实例的动态视图,包含系统管理和优化使用的视图, 这里的GV表示 Global v$的意思;
如当前分布环境下启动多个实例:
set line 160 (每行显示160个字符)
select inst_id,sid,lmode from gv$lock where inst_id = 1 or inst_id=2;
--查看表空间中数据文件存放的路径:
SQL> SELECT TABLESPACE_NAME, BYTES/1024/1024 FILE_SIZE_MB, FILE_NAME FROM DBA_DATA_FILES;
删除表空间:
SQL> drop tablespace workபைடு நூலகம்bs including contents;
--其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。
SQL> select pid,pga_used_mem,pga_alloc_mem,pga_max_mem from v$process;
--查看后台进程:
o 4. 使表空间联机
o 第一步:alter tablespace sales offline;
o 第二步:物理移动数据文件到目的地(可以是表空间的
o 部分数据文件,可以修改数据文件的名称)
o 第三步: 逻辑移动,修改控制文件的内容
o 'c:\SALES_DATA06.dbf'
o autoextend on;
o 修改表空间属性(离线)
o alter tablespace sales offline;
o 修改表空间属性(在线)
o autoextend off;
o 打开表空间数据文件的自动扩展属性
o alter database
o datafile 'c:\SALES_DATA04.dbf' ,
o 'c:\SALES_DATA05.dbf',
DBA_SYNONYMS 所有用户同义词信息;
DBA_SEQUENCES 所有用户序列信息;
DBA_CONSTRAINTS 所有用户的表约束信息;
DBA_INDEXES 所有用户索引的简要信息;
DBA_IND_COLUMNS 所有用户索引的列信息;
DBA_TRIGGERS 所有用户触发器信息 ;
unlimited,'d:\sales\SALES_DATA03.dbf' size 10m;
--查看表空间的大小;
SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
表空间已丢弃。
再次查询表空间会发现已经没有worktbs表空间了。
如果我们再次删除表空间会出现什么后果?
删除一个不存在的表空间:
SQL> drop tablespace worktbs including contents;
drop tablespace worktbs including contents
o 如下系统表空间不得设置为 offline 或者 read only
o system , temp,undo ,undotbs
o 移动表空间的数据文件
o 1. 使表空间脱机(系统表空间不得脱机,故不得移动)
o 2. 修改数据文件的名称
o 3. 执行 alter tablespace rename datafile 命令
CAT 当前用户可以访问的所有的基表 ;
TAB 当前用户创建的所有基表,视图,同义词等;
DICT 构成数据字典的所有表的信息;
2 与数据库组件相关的数据字典:
数据库:
V$DATABASE 同义词 V_$DATABASE,记录系统的运行情况;
表空间:
SELECT * FROM v$bgprocess WHERE paddr <> '00';
--查看所有的表空间;
SQL> select tablespace_name from dba_data_files order by tablespace_name;
--查看表空间的名字及大小:
oracle常用数据字典,oracle10增加了不少数据字典10g r1 有1713个,r2有1870个:
1 基本的数据字典:
DBA_TABLES 所有用户的所有表的信息;
DBA_TAB_COLUMNS 所有用户的表的列(字段)信息;
DBA_VIEWS 所有用户的所有视图信息;
o alter tablespace sales online;
o 修改表空间属性(只读)
o alter tablespace sales read only;
o 修改表空间属性(读写)
o alter tablespace sales read write;
ALL_
记录用户对象的信息及被授权访问的对象信息;
DBA_
记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中
所有用户的信息,DBA的信息包含user和all的信息;
ORACLE第一章补充:
----常用数据字典
USER_
记录用户对象的信息,如user_tables包含用户创建的所有表; user_views,user_constraints等;
DBA_TABLESPACES 记录系统表空间的基本信息;
DBA_DATA_FILES 记录系统数据文件及表空间的基本信息;
DBA_FREE_SPACE 记录系统表空间的剩余空间的信息;
控制文件:
V$CONTROLFILE 记录系统控制文件的路径信息;
V$PARAMETER 记录系统各参数的基本信息;
'c:\oracle\oradata\test\testtablespace\sales_data05.dbf' size 10m autoextend on next 10m maxsize unlimited, 'c:\oracle\oradata\test\testtablespace\sales_data06.dbf' size 10m;
o alter tablespace sales rename
o datafile 'c:\sales01.dbf' to 'd:\sales02.dbf'
o --可以有多个数据文件,但是源文件
o 要在to的左边,目的文件要在to 右边,文件名称之间逗号分割.
o 第四步: 将表空间联机
SQL> create tablespace SALES
datafile 'd:\sales\SALES_DATA01.dbf' size 10m autoextend on next 10m maxsize 100m,
'd:\sales\SALES_DATA02.dbf' size 10m autoextend on next 10m maxsize
V$pgastat 显示内存使用统计信息
V$sql_workarea SQL游标所用工作区的信息
V$ sql_workarea_active 当前系统工作区的信息
--在V$process动态性能视图中可以查询到每个Oracle进程的PGA分配的内存和已使用的内存情况,
v$CONTROLFILE_RECORD_SECTION 记录系统控制运行的基本信息;
数据文件:
DBA_DATA_FILES 记录系统数据文件及表空间的基本信息;
v$DATAFILE 记录来自控制文件的数据文件信息;
v$FILESTAT 记录数据文件读写的基本信息 ;
*
ERROR 位于第 1 行:
ORA-00959: 表空间'WORKTBS'不存在
o 为表空间增加数据文件
SQL> alter tablespace sales add datafile 'd:\oracle\oradata\test\testtablespace\
sales_data04.dbf' size 10m autoextend on next 10m maxsize 100m,