小菜鸟之oracle数据字典
oracle数据字典
一、数据字典
数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。
oracle中、sys用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间system内,任何用户都无权更改sys模式下的模式对象或数据字典中的行。也就是说数据字典只能查询,不能手动进行修改。
数据字典用途
oracle通过存取数据字典从而比较方便地获取有关用户某事对象和存储结构等信息。当系统执行了DDL语句后,oracle会及时修改数据字典。任何用户只能以读的形式使用数据字典获取数据库信息。
数据字典存储的信息
· 数据用户的名称
· 为用户授予的权限和角色
· 模式对象的名称,如 tables,views,indexex,procedures,functions,packages,triggers等。
· 完整性约束的具体信息;
· 每个字段的默认值;
· 数据库空间的使用情况;
· 审计功能,在Oracle_Home\productdb_l\rdbms\admin目录下的文件cataudit.sql就是用于为审计创建数据字典视图的脚步。
· 对象与用户的严格管理(适用于高度机密管理);
· 其他一般数据库信息。
三种前缀的数据字典视图
user_ :任何用户都可以读取的视图,每个用户读取的都不一样,它只提供当前用户某事下的对象信息。如查询当前模式下的所有对象select object_name, object_type from user_objects;
all_ :所有用户都可读取的用户视图,它提供与用户有关的对象信息。如查询当前用户可访问的所有对象
select owner, object_name, object_type from all_objects;
dba_:提供了只有数据库管理员才可读取的视图,包括所有用户视图中的对象信息。如select owner, object_name, object_type from sys.dba_objects;
二、数据字典相关查询
1、 查询用户
select username from dba_users; -- 只有管理员权限的用户才能查询
select username from all_users; -- 当前或任何用户都可使用
-- 查看当前用户的默认表空间select username, default_tablespace from user_users;
--当前用户角色select * from user_role_privs;
-- 当前用户的系统权限和表级权限select * from user_sys_privs;
select * from user_tab_privs;
2、查询 表空间 (拥有DBA权限的用户才能查询)
select * from dba_data_files;select * from dba_tablespaces; --表空间
select tablespace_name, sum(bytes), sum(blocks) from dba_free_space group by tablespace_name; --空闲表空间
select * from dba_data_files where tablespace_name='USERS'; -- 表空间对于的数据文件
select * from dba_segments where tablespace_name='USERS';--查询用户模式对象所使用过的正在使用空间大小select name, type, source_size, code_size from user_object_size;
3、查询数据库对象(拥有DBA权限的用户才能查询)
select * from dba_objects
select * from dba_objects where object_type = upper('package body');
select * from dba_objects where OBJECT_TYPE='TABLE' and OWNER='SCOTT'
可根据拥有者查询下列对象类型(object_type)
cluster databaselink
function index
library package
package body procedure
sequence synonym
table trigger
type undefined
view
4、查询表
--表使用的extent的信息。segment_type='ROLLBACK'
select * from dba_tables;select extent_id, bytes from dba_extents where segment_name='CUSTOMERS' and segment_type='TABLE' order by extent_id;
-- 查看回滚段的空间分配信息列信息 SELECT * FROM user_tab_columns;select distinct table_name from user_tab_columns where column_name='ID';
-- 查看当前用户下所有的表select * from user_tables;--查看名称包含log字符的表select object_name, object_id from user_objects where instr(object_name, 'LOG') > 0;-- 查看某表的创建时间select object_name, created from user_objects where object_name = upper('&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;
5、查询索引
select * from dba_indexes; -- 索引,包括主键索引
select * from all_indexes;select * from dba_ind_columns; -- 索引列
select i.index_name, i.uniqueness, c.column_name from user_indexes i, user_ind_columns c where i.index_name=c.index_name and i.table_name = 'PERSON'; --连接使用
-- 查看索引个数和类别select index_name, index_type, table_name from user_indexes order by table_name;-- 查看索引被索引的字段select * from user_ind_columns where index_name=upper('&index_name');-- 查看索引的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name = upper('&index_name');
6、查询序列
select * from dba_sequences;select * from all_sequences;
查看序列号,last_number是当前值select * from user_sequences;
7、查询视图
select * from dba_views;select * from all_views;
可用目录desc all_views;来查看视图结构
其中,Text列可用于查询视图生产的脚本。
--查询当前用户视图的名称select view_name from user_views;
--查询创建视图的select语句select view_name, text_length from user_views;set long 2000;
--可以根据视图的text_length 值设定set long的大小select text from user_views where view_name = upper('&view_name');
8、查询聚簇
select * from dba_clusters;
9、查询快照
select * from dba_snapshots;
快照、分区应存在相对应的表空间
10、查询同义词
select * from dba_synonyms where table_owner='SCOTT';select * from ALL_synonyms where table_owner='SYSTEM';
如果用户表可以被访问,那么同义词也可以被访问,用户表不能被访问,则同义词也不能被访问。
11、查询数据库链
select * from dba_db_links;
12、查询触发器(12)
select * from dba_triggers;
存储过程,函数从dba_objects查找
查询文本select text from user_source where name = 'PRO_PERSON_FINDBYID';
oracle总是将存储过程,函数放在system表空间。
13、查看函数和过程的状态
select object_name, status from user_objects where object_type='FUNCTION';select object_name, status from user_objects where object_type='PROCEDURE';
--查看源代码select * from all_source where owner='WUXX' and name=upper('&plsql_name');
14、查询约束
约束是和表关联的,可以在create table或alter table table_name add/drop/modify 来建立、修改、删除约束。
可以临时禁止约束,如:
alter table book_example
disable constraint book_example_l;
数据完整性约束
select constraint_name, constraint_type, table_name from dba_constraints;
15、查询回滚段
在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发送的事务来相应确定其大小。(DML语句才可回滚,create, drop, truncate等DDL不能回滚)
回滚段数量=并发事务/4,但不能超过50个;是每个回滚段大小足够处理一个完整的事物;
create rollback segment r05 tablespace rbs;create rollback segment rbs_cvt tablespace rbs storage(initial 1M next 500k);
16、查询作业
select job, broken, next_date, interval, what from user_jobs;select job, broken, next_date, interval, what from dba_jobs;
--正在运行的作业select * from dba_jobs_running;
使用包exec dbms_job.sumit(:v_num, 'a;', sysdate, 'sysdate +(10/(24*60*60))');加入作业。间隔10秒
使用包exec dbms_job.sumit(:v_num, 'a;', sysdate, 'sysdate +(10/(24*60))');加入作业。间隔11分
使用表exec dbms_job.remove(21)删除21号作业。
其他信息查询
查询优化模式对象使用过的或正在使用的空间大小
select name, type, source_size, code_size from user_object_size;
查询字段的默认值
select table_name, column_name, data_default, low_value, hight_value from dba_tab_columns;
小菜鸟之oracle数据字典的更多相关文章
- 小菜鸟之oracle
oracle 存储过程 函数 创建 删除 参数 传递 函数 查看 包 系统包 分类: Oracle 2011-10-27 17:31 264人阅读 评论(0) 收藏 举报 认识存储过程和函数 存储 ...
- 小菜鸟之Oracle数据库
select * from STUDENT; select * from mark; select * from COURSE; select * from teacher; --注释 select ...
- 小菜鸟之Oracle数据库之事务
Oracle数据库之事务 1. 什么是事务 在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个 ...
- 小菜鸟之oracle触发器
1.触发器说明 触发器是一种在事件发生时隐式地自动执行的PL/SQL块,不能接受参数,不能被显式调用 2.触发器类型 根据触发器所创建的语句及所影响的对象的不同,将触发器分为以下3类 (1)DML触发 ...
- Oracle数据字典
数据字典-简介 Oracle数据字典的名称由前缀和后缀组成,使用下划线"_"连接,其代表的含义如下: ● DBA_:包含数据库实例的所有对象信息. ● V$_:当前实例的动态视图, ...
- Oracle数据字典详解
学习笔记:oracle数据字典详解 --- 本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图.然后列出一些附例. 数据字典系统表,保存在system表空间中. ...
- 【转载】Oracle数据字典详解
转自:http://czmmiao.iteye.com/blog/1258462 Oracle数据字典概述 数据库是数据的集合,数据库维护和管理这用户的数据,那么这些用户数据表都存在哪里,用户的信息是 ...
- oracle数据字典-权限-角色
每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是在sys这个系统sch ...
- PowerDesigner生成Oracle数据字典
PowerDesigner版本信息 1.File-->NewModel... 2.选择模型 New Model Model types-->Physical Data Model --&g ...
随机推荐
- Linux系统启动顺序
Linux启动顺序 加电—加电自检(BIOS)—硬件检查 —MBR(找到需要启动的系统,由于实际计算机上可能会装有多个系统) —bootloader系统初始化,装载kenel到内存 —内核执行,决定哪 ...
- confirm 弹出信息
if(confirm("真的要删除吗?")){ alert("点击了确认按钮"); } else{ alert("点击了取消按钮"); } ...
- [HNOI2008][bzoj 1005]明明的烦恼(prufer序列)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7121 Solved: 2816[Submit][Stat ...
- 解决xshell无法连接virtualbox中的虚拟机(Ubuntu18.04)的问题
遇到这个问题第一反应是是否安装相应的组件: sudo apt-get install openssh-server 开启防火墙端口 firewall-cmd --zone=/tcp --permane ...
- 文件操作(stat)
/*** stat.c ***/ #include<stdio.h> #include<string.h> #include<sys/stat.h> #includ ...
- 编写批处理使用msbuild编译项目
echo off ::请把此bat脚本放到以下代码路径下 并在环境变量中配置对应版本的vs编译器的值 ::vs2017如:C:\Program Files (x86)\Microsoft Visual ...
- 「CSA Round #41」BFS-DFS
题目链接 戳我 \(Description\) 给出一个图的\(bfs\)序和\(dfs\)序,构造出一个满足条件的图,边的扫描顺序为读入顺序 \(Solution\) 这个题还是很简单的. 先来看看 ...
- [心得]暑假DAY1 | 7-7考试总结
呼.. 正式开始暑假集训. 今天一上午还在搞7-7的考试改题 然而,该来该去,TLE48过不去了 不知道哪的问题,loj上1w3ms(卡常都没能救得了) 至于T1和T3,简单总结一下算了 排序 感觉很 ...
- 黑马lavarel教程---11、响应处理
黑马lavarel教程---11.响应处理 一.总结 一句话总结: 如果在昂扬状态,看学习视频和运动时间重合,会很舒服 1.jquery的$.post参数为什么不需要占位? 因为每个参数的类型不同,可 ...
- 批量删除.svn文件夹、.svn文件
使用svn进行版本控制,每个文件夹下都有.svn文件夹,有些项目在脱离svn版本控制之后,想删除项目中所有的.svn文件夹,可用下面的方法进行快速删除: 1.打开要删除.svn文件的最外层文件夹, ...