Oracle学习笔记—数据字典和常用命令(转载)

转载自:

oracle常用数据字典和SQL语句总结

Oracle常用命令大全(很有用,做笔记)

一、Oracle数据字典

  数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。
  Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。  

1.静态数据字典

  这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。

  •   user_*:该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
  •   all_*:该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)
  •   dba_*:该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

  从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。没有DBA权限的用户只能看到user_*和all_*视。如果没有被授予相关的SELECT权限的话,他们是不能看到 dba_*视图的。
  由于三者具有相似性,下面以user_为例介绍几个常用的静态视图:
  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‘)

  了解了当前用户对该表的权限之后就可以清楚的知道,哪些操作可以执行,哪些操作不能执行。

  前面的视图均为user_开头的,其实all_开头的也完全是一样的,只是列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。对于dba_开头的需要管理员权限,其他用法也完全一样,这里就不再赘述了。

2.动态数据字典

  Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。
  Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。下面就几个主要的动态性能视图进行介绍。

  • v$access:该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。
  • v$session:该视图列出当前会话的详细信息。由于该视图字段较多,这里就不列详细字段,为了解详细信息,可以直接在sql*plus命令行下键入:desc v$session即可。
  • v$active_instance:该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。  
  • v$context:该视图列出当前会话的属性信息。比如命名空间、属性值等。 

    以上是Oracle的数据字典方面的基本内容,运用好数据字典技术,可以让数据库开发人员能够更好的了解数据库的全貌,这样对于数据库优化、管理等有极大的帮助。

二、常用命令

1.用户

查看当前用户的缺省表空间

select username,default_tablespace from user_users;

查看当前用户的角色

select * from user_role_privs; 

查看当前用户的系统权限和表级权限

select * from user_sys_privs;
select * from user_tab_privs; 

2.表

查看用户下所有的表

select * from user_tables; 

查看某表的创建时间

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;

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_name‘); 

查看索引的大小

select sum(bytes)/(1024*1024) as "size(M)" from user_segments
                where segment_name=upper(‘&index_name‘); 

4.序列号

查看序列号,last_number是当前值

select * from user_sequences; 

5.视图

查看视图的名称

select view_name from user_views;  

6.存储函数和过程

查看函数和过程的状态

select object_name,status from user_objects where object_type=‘FUNCTION‘;
select object_name,status from user_objects where object_type=‘PROCEDURE‘; 

查看函数和过程的源代码

select text from all_source where owner=user and name=upper(‘&plsql_name‘); 

7.表空间

查看表空间的名称及大小

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
    group by t.tablespace_name; 

查看表空间物理文件的名称及大小

select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;

查看表空间的使用情况

 select sum(bytes)/(1024*1024) as free_space,tablespace_name
    from dba_free_space
    group by tablespace_name; 
时间: 2024-08-24 15:56:17

Oracle学习笔记—数据字典和常用命令(转载)的相关文章

学习笔记-- 2014-07-07 Linux常用命令

2014-07-07 Linux常用命令 在Linuxtoy.org上看一些文章收集一些常用命令==================一.ps.kill 使用备查二.Ubuntu 提示三则三.最小化安装 Ubuntu四.Linux Mint设置时间 一到三来看linuxtoy.org网站 ===================一.ps.kill 使用备查 ps-查看当前正在运行的进程,示例:$ ps     kill {PID}-通过 PID 来停止任意进程,示例:$ kill 1012    

Linux学习笔记(四)-Linux常用命令

常用命令格式 #command(指令) [-options] parameter1(参数1) parameter2(参数2)... 大小写区分,tab自动补全 Shell特殊字符 通配符 管道Pipe:把前面进程的输出作为后面进程的输入,把前面文件的输出作为后面进程的输入 输入/输出重定向 命令帮助 Man工具就是系统帮助手册:man+命令 Info工具是一个基于菜单的超文本系统 翻页 ctrl+f:下一页 ctrl+b:上一页 more 历史记录查看 history n(指定查看最近多少条)

Maven学习笔记二:常用命令

Maven常用命令: 1.mvn -v:显示版本信息 2.创建Java项目 mvn archetype:generate groupid:项目标识,java包的目录结构: artifactid:项目名称 示例: mvn archetype:generate -DarchetypeCatalog=internal -Dgroupid=com.demo.app -Dartifactid=myapp -Dversion=1.0 -DarchetypeCatalog=internal:不从远程服务器上获

Oracle学习笔记(3)-----------命令大全

一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b.关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动

Oracle学习笔记六 SQL常用函数

函数的分类 Oracle 提供一系列用于执行特定操作的函数 SQL 函数带有一个或多个参数并返回一个值 以下是SQL函数的分类: 单行函数对于从表中查询的每一行只返回一个值 可以出现在 SELECT 子句中和 WHERE 子句中 单行函数可以大致划分为: 1.日期函数 2.数字函数 3.字符函数 4.转换函数 5.其他函数 单行函数 日期函数 日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果 日期函数包括: 1.ADD_MONTHS 2.MONTHS_BETWEEN 3.LAST_D

HBase学习笔记-HBase shell常用命令

扫表的时候限定行数 scan 'TABLE_NAME', { LIMIT => 5 } 即为扫表的时候,限定只输出五条数据 ============================================== 删表 删表需要执行两个步骤,即disable和drop,具体如下: disable 'TABLE_NAME' drop 'TABLE_NAME' 当然disable后的表还可以重新enable起来,命令为: enable 'TABLE_NAME' =================

【安全牛学习笔记】tcpdump常用命令实例

默认启动 tcpdump普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 监听网卡eth0tcpdump -i eth0这个方式最简单了,但是用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使 用ctrl+c中断退出,如果真有需求,可以将输出内容重定向到一个文件,这样也更方便查看. 监听指定的主机tcpdump -i eth0 -nn 'host 192.168.168.2'这样的话,192.168.168.2这台主机接收到的包和发送的包都会被抓取.tcp

Linux学习笔记之四————Linux常用命令 ( 待补充)

一.Linux命令--文件.磁盘管理 1.文件管理 <1>查看文件信息:ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令. Linux文件或者目录名称最长可以有265个字符,"."代表当前目录,".."代表上一级目录,以"."开头的文件为隐藏文件,需要用 -a 参数才能显示. ls常用参数: 参数 含义 -a 显示指定目录下所有子目录与文件,包括隐藏文件 -l 以列表方式

Docker学习笔记(2)--Docker常用命令

原文地址:http://blog.csdn.net/we_shell/article/details/38368137 1. 查看docker信息(version.info) [plain] view plaincopy # 查看docker版本 $docker version # 显示docker系统的信息 $docker info 2. 对image的操作(search.pull.images.rmi.history) [plain] view plaincopy # 检索image $do