oracle查询表信息(索引,外键,列等)

oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助:

1、查询出所有的用户表
select * from user_tables 可以查询出所有的用户表

select owner,table_name from all_tables; 查询所有表,包括其他用户表

通过表名过滤需要将字母作如下处理

select * from user_tables where table_name = upper('表名')

因为无论你建立表的时候表名名字是大写还是小写的,create语句执行通过之后,对应的user_tables表中的table_name字段都会自动变为大写字母,所以必须通过内置函数upper将字符串转化为大写字母进行查询,否则,即使建表语句执行通过之后,通过上面的查询语句仍然查询不到对应的记录。
2、查询出用户所有表的索引
select * from user_indexes
3、查询用户表的索引(非聚集索引):
select * from user_indexes where uniqueness='NONUNIQUE'
4、查询用户表的主键(聚集索引):
select * from user_indexes where uniqueness='UNIQUE'
5、查询表的索引
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and

t.table_name='NODE'
6、查询表的主键
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and

au.constraint_type = 'P' AND cu.table_name = 'NODE'
7、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name and

cu.table_name='NODE'
8、查找表的外键
select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
9、查询表的所有列及其属性
方法一:

select * from user_tab_columns where table_name=upper('表名');

方法二:

select cname,coltype,width from col where tname=upper('表名');;

 
10.查询一个用户中存在的过程和函数
select object_name,created,status from user_objects 
where lower(object_type) in ('procedure','function');
 
11.查询其它角色表的权限
select * from role_tab_privs ;
 
 

查看索引个数和类别

select * from user_indexes where table_name='表名' ;

查看索引被索引的字段

SQL>select * from user_ind_columns where index_name=upper('&index_name');

PS:

查看某表的约束条件

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_name 
from user_constraints c,user_cons_columns cc 
where 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;

查看视图的名称

SQL>select view_name from user_views;

oracle lobsegment 过大 怎么解决 [复制链接]

   

注册会员

中级会员

精华贴数
0
专家积分
3
技术积分
2515
社区积分
160
注册时间
2006-8-1
论坛徽章:
10
电梯直达

1#

 
 发表于 2010-8-24 17:08:55 |只看该作者 |倒序浏览
DB: 10.2.0.4
OS: SOLARIS

有部分logsegment 段过大了,我想查下这些lobsegment是哪个表的 应该怎么查,
查到后有什么方法可以尽量减小其大小。

SQL> select  segment_name,segment_type,tablespace_name,bytes/1024/1024,blocks,extents  from user_segments
  2  where segment_type='LOBSEGMENT'
  3   order by bytes desc;

SEGMENT_NAME                                                                      SEGMENT_TYPE       TABLESPACE_NAME                BYTES/1024/1024     BLOCKS    EXTENTS
--------------------------------------------------------------------------------- ------------------ ------------------------------ --------------- ---------- ----------
SYS_LOB0000010054C00005$$                                                         LOBSEGMENT         INNOCOM                                  57670    7381760       1090
SYS_LOB0000009926C00005$$                                                         LOBSEGMENT         INNOCOM                                  15651    2003328        431
SYS_LOB0000010071C00002$$                                                         LOBSEGMENT         INNOCOM                                   2048     262144        215

 
 
 
我的技能:ORACLE SQLSERVER MYSQL GOLDENGATE LINUX SOLARIS AIX SHELL and a good oral english
 

使用道具 举报

   

注册会员

初级会员

精华贴数
0
专家积分
0
技术积分
23
社区积分
1
注册时间
2007-2-9
论坛徽章:
1
2#

 
 发表于 2010-8-24 18:24:34 |只看该作者
SELECT A.TABLE_NAME,
       A.COLUMN_NAME,
       B.SEGMENT_NAME,
       B.SEGMENT_TYPE,
       B.TABLESPACE_NAME,
       B.BYTES / 1024 / 1024,
       B.BLOCKS,
       B.EXTENTS
  FROM USER_LOBS A, USER_SEGMENTS B
WHERE A.SEGMENT_NAME = B.SEGMENT_NAME
ORDER BY B.BYTES DESC;
 
 
 
 

使用道具 举报

   

注册会员

初级会员

精华贴数
0
专家积分
0
技术积分
23
社区积分
1
注册时间
2007-2-9
论坛徽章:
1
3#

 
 发表于 2010-8-24 18:28:41 |只看该作者
可以对LOB字段进行压缩存储
ALTER TABLE <表名> MODIFY LOB(<列名>) (COMPRESS);
 
 
 
 

使用道具 举报

   

注册会员

十万个为什么

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
4#

 
 发表于 2011-8-15 21:52:30 |只看该作者
遇到这个问题

up一下

 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

注册会员

十万个为什么

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
5#

 
 发表于 2011-8-23 21:33:53 |只看该作者
表有lob字段,有300000rows
the most largest row's lob column is 12K size
found The biggest lob segment will be 5G,but it show 50G
如何处理?

1.
col segment_name for a35
select * from (
select owner,segment_name,tablespace_name,segment_type,bytes/1024/1024 from dba_segments order by 5 desc
) where TABLESPACE_NAME='QQ' AND rownum<20;

OWNER SEGMENT_NAME SEGMENT_TYPE BYTES/1024/1024
--------- -------------------------- ------------------ ---------------
QQQ SYS_LOB0000138594C00023$$ LOBSEGMENT 50105
PP SYS_LOB0000130969C00023$$ LOBSEGMENT 46917
QQQ SYS_LOB0000138594C00078$$ LOBSEGMENT 5128
PP SYS_LOB0000130969C00078$$ LOBSEGMENT 4864
......

SELECT DBMS_LOB.GETLENGTH(A00126) LENGTH FROM PP.CM45001 where rowid='AAAf+ZAAIAAApQaAAM' and rownum<10;
LENGTH
----------
11869

 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

注册会员

十万个为什么

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
6#

 
 发表于 2011-8-23 21:38:46 |只看该作者
悲剧没人回复!

up

 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

注册会员

咖啡猫

精华贴数
3
专家积分
169
技术积分
6253
社区积分
15799
注册时间
2006-5-14
论坛徽章:
169
7#

 
 发表于 2011-8-23 21:51:12 |只看该作者
--alter table <your_table> move lob (<lob_column>) store as (tablespace <tablespace>);

select 'alter table ' || t.owner || '.' || t.table_name || ' move lob (' ||
       column_name || ') store as ' || t.table_name ||
       '_lobsegment (tablespace USERS );'
  from dba_lobs l, dba_tables t
where l.owner = t.owner
   and l.table_name = t.table_name
   and l.SEGMENT_NAME in
       (select segment_name
          from dba_segments
         where segment_type like 'LOBSEGMENT'
           and tablespace_name = 'USERS')
order by t.owner, t.table_name;

 
 
 
猫言猫语:
             人生无非是笑笑人家,再被人家笑笑而已.
             男人是用来靠的,所以要可靠;女人是用来爱的,所以要可爱.
             发怒一分钟便失去六十秒的幸福.
             人品就象内裤,表面看不出来,如果你没有还显摆,就挺讨厌.
             ......
 

使用道具 举报

   

注册会员

十万个为什么

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
8#

 
 发表于 2011-8-23 22:01:26 |只看该作者
谢谢!
顺便问一下,以前你做这个操作后效果如何?
 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

版主

Frank

精华贴数
5
专家积分
84
技术积分
15595
社区积分
4594
注册时间
2006-1-4
认证徽章
论坛徽章:
89
9#

 
 发表于 2011-12-6 02:20:29 |只看该作者
同遇到这个问题,如何解决?
 
 
 
http://space.itpub.net/715354/
 

使用道具 举报

   
精华贴数
5
专家积分
318
技术积分
43555
社区积分
12600
注册时间
2005-3-4
论坛徽章:
161
10#

 
 发表于 2011-12-6 08:55:17 |只看该作者
查询dba_lobs。

SEGMENT_NAME                                                                      SEGMENT_TYPE       TABLESPACE_NAME                BYTES/1024/1024     BLOCKS    EXTENTS
--------------------------------------------------------------------------------- ------------------ ------------------------------ --------------- ---------- ----------
SYS_LOB0000010054C00005$$                                                         LOBSEGMENT         INNOCOM                                  57670    7381760       1090

object_id=10054
column_id=5

好像是这样。

 
分类: Oracle
 
 

类型:Oracle;问题:oracle 查询表详细信息;结果:oracle查询表信息(索引,外键,列等)的更多相关文章

  1. 关于 Oracle外键列上是否需要索引问题?

    外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可能会造成严重性能问题.   无论是Oracle的官方文档,还是在Tom的书中都说明了两种情况下可以忽略外键上的索引.其 ...

  2. sqlserver 查询表中的主键、外键列及外键表,外表中的主键列

    1.获取主键信息 EXEC sp_pkeys @table_name='{0}' 2.获取外键 方法二 SELECT Field=(SELECT name FROM syscolumns WHERE ...

  3. ORACLE中关于外键缺少索引的探讨和总结

    在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...

  4. (转)ORACLE中关于外键缺少索引的探讨和总结

    在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...

  5. Oracle外键不加索引会引起死锁问题

    转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...

  6. oracle查询某张表的外键,并用 truncate 命令有外键的表中的数据

    注:本文来源于<oracle查询某张表的外键(最终解决办法)> 一:几个查询表外键的脚本 select b.table_name, b.column_name from user_cons ...

  7. oracle 查看主外键约束

    select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints ...

  8. 两种获取MySql数据库中所有表的主键和外键约束信息的Sql语句

    最近在写Rafy底层的一些东西,在数据库方面把MySql数据库集成到里面去,里面有一个需求,需要获取非系统数据库,也就是我们自己建立的数据库中所有表的主键和外键元数据列表. 第一种方法:是网上的方法, ...

  9. SQLServer:查询所有外键关联表信息

     --从左到右分别是: 外键约束名,子表名,外键列名,父表名 --use demodtcms--外键信息select fk.name fkname , ftable.name ftablename, ...

随机推荐

  1. Eclipse下创建简单Servlet

    参考文章:一个简单的Servlet程序  http://blog.csdn.net/a153375250/article/details/50916428 Servlet简介 Servlet是什么?简 ...

  2. PCA算法详解——本质上就是投影后使得数据尽可能分散(方差最大),PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主⼦空间(principal subspace),使得投影数据的⽅差被最⼤化(Hotelling, 1933),即最大方差理论。

    PCA PCA(Principal Component Analysis,主成分分析)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量 ...

  3. Linux_总结_02_最小化安装后需要安装和更新的命令

    一.前言 二.安装命令 1.配置yum源 2.更新yum sudo yum -y update 3.安装ifconfig 最小化安装后,是无法使用ifconfig命令的. 可参见:CentOS7下解决 ...

  4. @angular/cli项目构建--Dynamic.Form

    导入所需模块: ReactiveFormsModule DynamicFormComponent.html <div [formGroup]="form"> <l ...

  5. 应该是实例化对象的没有对属性赋值时,自动赋值为null,但不是空指针对象引用

    此时会输出两个null. Users类的实例是myUsers,但是由于javabean的作用范围是page,所以前面页面传送的javabean的设置的属性全部不能接收到.所以对象myUsers属性为自 ...

  6. New Concept English three (49)

    31w/m 51error It is a good thing my aunt Harriet died years ago. If she were alive today she would n ...

  7. [基本操作]决策单调性优化dp

    一般的式子都是 $f_i = max\{g_j + w_{(i,j)}\}$ 然后这个 $w$ 满足决策单调性,也就是对于任意 $i < j$ ,$best_i \leq best_j$ 这样就 ...

  8. LeetCode 305. Number of Islands II

    原题链接在这里:https://leetcode.com/problems/number-of-islands-ii/ 题目: A 2d grid map of m rows and n column ...

  9. MSSQL日誌傳輸熱備份注意事項

    主次數據庫需要新增一個用戶,並設定agent服務用此用戶執行 主次數據庫需要設定共享目錄並擁有讀/寫權限,用anent執行用戶即可 如果新增日誌傳輸時順便初始化數據庫記得次數據庫主機目錄給寫權限,否則 ...

  10. Python函数-complex()

    complex([real[, imag]]) 作用: 创建一个值为real + imag * j的复数或者转化一个字符串或数为复数.如果第一个参数为字符串,则不需要指定第二个参数. 参数real: ...