oracle中约束、表和列名之间的查询,表空间查询

1、查询约束
SELECT
  USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,
  USER_CONS_COLUMNS.TABLE_NAME AS 表名,
  USER_CONS_COLUMNS.COLUMN_NAME AS 列名,
  USER_CONS_COLUMNS.POSITION AS 位置
FROM
  USER_CONSTRAINTS
    JOIN USER_CONS_COLUMNS
    ON (USER_CONSTRAINTS.CONSTRAINT_NAME
        = USER_CONS_COLUMNS.CONSTRAINT_NAME)
WHERE
  CONSTRAINT_TYPE = 'P';

注: 最后那里的 WHERE 填写的条件的注意:
C (check constraint on a table)   C 表示 CHECK 约束。
P (primary key)   P 表示主键
U (unique key)     U 表示唯一
R (referential integrity)   P 表示引用(外键)
V (with check option, on a view)
O (with read only, on a view)  ;

2、查询表空间信息
select dbf.tablespace_name,
       dbf.totalspace "总量(M)",
       dbf.totalblocks as 总块数,
       dfs.freespace "剩余总量(M)",
       dfs.freeblocks "剩余块数",
       (dfs.freespace / dbf.totalspace) * 100 "空闲比例"
  from (select t.tablespace_name,
               sum(t.bytes) / 1024 / 1024 totalspace,
               sum(t.blocks) totalblocks
          from dba_data_files t
         group by t.tablespace_name) dbf,
       (select tt.tablespace_name,
               sum(tt.bytes) / 1024 / 1024 freespace,
               sum(tt.blocks) freeblocks
          from dba_free_space tt
         group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name);

猜你喜欢

转载自xuejiangtao.iteye.com/blog/1458782
今日推荐