Oracle数据库实现方式查询所有表实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Oracle数据库实现方法查询所有表”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
目录
- 1、查询当前数据库下的所有表
- 2、查询当前登录用户的所有表
- 3、查询所有用户的表,视图等
- 4、查询本用户的表,视图等
- 5、查询所有用户的表的列名和注释
- 6、查询本用户的表的列名和注释
- 7、查询所有用户的表的列名等信息
- 8、查询本用户的表的列名等信息
- 9、查询一个数据库中所有表的大小并排序
- 总结
1、查询当前数据库下的所有表
select * from all_tables where owner = 'TEST';
注:all_tables查出来是查得所有用户下的表,当然也包括你登录的用下的表,随后加一个where你要查的那个用户名就能够了。(记得用户名要大写)
模糊查询该条件的表名称:
select * from all_tables where owner = 'TEST' and table_name like '%S%';
2、查询当前登录用户的所有表
select * from user_tables;
简写:
select * from tabs;
模糊查询该条件的表名称:
select * from user_tables where table_name like '%S%';
3、查询所有用户的表,视图等
select * from all_tab_comments;
4、查询本用户的表,视图等
select * from user_tab_comments;
5、查询所有用户的表的列名和注释
select * from all_col_comments;
6、查询本用户的表的列名和注释
select * from user_col_comments;
7、查询所有用户的表的列名等信息
select * from all_tab_columns;
8、查询本用户的表的列名等信息
select * from user_tab_columns;
注:
- 3-8号的都能够在后面加一个 where owner = 'TEST'
- 就是你要查的那个用户名下的信息
9、查询一个数据库中所有表的大小并排序
SELECT *
FROM (SELECT T1.OWNER,
T1.TABLE_NAME,
ROUND(T1.TABLE_SIZE / 1024 / 1024) +
ROUND(NVL(T3.LOB_DATA_SIZE, 0) / 1024 / 1024) TABLE_SIZE_MB,
ROUND(NVL(T2.INDEX_SIZE, 0) / 1024 / 1024) +
ROUND(NVL(T3.LOB_INDEX_SIZE, 0) / 1024 / 1024) INDEX_SIZE_MB,
ROUND(T1.TABLE_SIZE / 1024 / 1024) +
ROUND(NVL(T3.LOB_DATA_SIZE, 0) / 1024 / 1024) +
ROUND(NVL(T2.INDEX_SIZE, 0) / 1024 / 1024) +
ROUND(NVL(T3.LOB_INDEX_SIZE, 0) / 1024 / 1024 / 1024) SIZE_MB
FROM (SELECT OWNER,
SEGMENT_NAME TABLE_NAME,
ROUND(SUM(BYTES)) TABLE_SIZE
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE LIKE 'TABLE%'
GROUP BY OWNER, SEGMENT_NAME) T1,
(SELECT A.OWNER, A.TABLE_NAME, SUM(B.BYTES) INDEX_SIZE
FROM (SELECT OWNER, TABLE_NAME, INDEX_NAME
FROM DBA_INDEXES
WHERE INDEX_TYPE <> 'LOB') A,
(SELECT OWNER, SEGMENT_NAME, BYTES FROM DBA_SEGMENTS) B
WHERE A.OWNER = B.OWNER
AND A.INDEX_NAME = B.SEGMENT_NAME
GROUP BY A.OWNER, A.TABLE_NAME) T2,
(SELECT A.OWNER,
A.TABLE_NAME,
SUM(B.LOB_DATA_SIZE) LOB_DATA_SIZE,
SUM(C.LOB_INDEX_SIZE) LOB_INDEX_SIZE
FROM (SELECT OWNER, TABLE_NAME, SEGMENT_NAME, INDEX_NAME
FROM DBA_LOBS) A,
(SELECT OWNER, SEGMENT_NAME, SUM(BYTES) LOB_DATA_SIZE
FROM DBA_SEGMENTS
GROUP BY OWNER, SEGMENT_NAME) B,
(SELECT OWNER, SEGMENT_NAME, SUM(BYTES) LOB_INDEX_SIZE
FROM DBA_SEGMENTS
GROUP BY OWNER, SEGMENT_NAME) C
WHERE A.OWNER = B.OWNER
AND A.SEGMENT_NAME = B.SEGMENT_NAME
AND A.OWNER = C.OWNER
AND A.INDEX_NAME = C.SEGMENT_NAME
GROUP BY A.OWNER, A.TABLE_NAME) T3
WHERE T1.OWNER = T2.OWNER(+)
AND T1.TABLE_NAME = T2.TABLE_NAME(+)
AND T1.OWNER = T3.OWNER(+)
AND T1.TABLE_NAME = T3.TABLE_NAME(+)
AND T1.OWNER = UPPER('TEST')
ORDER BY 5 DESC) X;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多兼容脚本之家。
您可能感兴趣的文章:
- Oracle查询表结构建表语句索引等方式
- Oracle数据库查询之单表查询的关键子句及其用法
- 实际处理时,oracle闪回恢复数据主要方法(闪回查询,闪回表,闪回库,回收站恢复)
- 查询Oracle数据库表是否被锁的实现方法
- Oracle查询表占用空间的三种方法
- oracle数据库查询表被锁多种方式实现
- Oracle表结构查询之如何拿到列信息与注释
- Oracle如何借助表名查询触发器
- oracle基础教程之多表关联查询
相关资讯
-
09.08
将文件或目录从Git跟踪中彻底移除的操作步骤实用指南
-
09.08
git branch如何delete方式实用指南
-
09.08
SQL MID() 函数完整指南与使用指南
-
09.08
SQL中COALESCE函数使用场景分析实用指南
-
09.08
Oracle11g还原数据库导入dmp文件的实现方式方式实用指南
-
09.08
Oracle数据库实现方式查询所有表实用指南
游戏推荐
推荐专题
热门阅读
-
- SQL MID() 函数完整指南与使用指南
- 09.08
-
- git branch如何delete方式实用指南
- 09.08
-
-
- Oracle数据库实现方式查询所有表实用指南
- 09.08
-
- SQL中COALESCE函数使用场景分析实用指南
- 09.08
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏