常用数据库获取表,视图,列,索引信息

一、分页获取数据库用户的所有表

(1)、Oracle,OceanBase(Oracle内核版),DM

使用ALL_TABLES,需要添加当前用户作为查询条件

sql 复制代码
select a3.* from (select a2.* from  (select  a1.*, rownum rn1 from (
select t1.table_name, t2.comments from ALL_TABLES t1, ALL_TAB_COMMENTS t2 WHERE t1.table_name = t2.table_name and upper(t1.owner) = upper(?)
) a1) a2 where rn1 <= 10 ) a3 where rn1 >= 1;

使用USER_TABLES,直接就可以查到当前用户下的表

sql 复制代码
select a3.* from (select a2.* from  (select  a1.*, rownum rn1 from (
select t1.table_name, t2.comments from USER_TABLES t1, USER_TAB_COMMENTS t2 WHERE t1.table_name = t2.table_name
) a1) a2 where rn1 <= 10 ) a3 where rn1 >= 1;

(2)、MySQL

sql 复制代码
select t.* from (select table_name,table_type,TABLE_COMMENT from INFORMATION_SCHEMA.TABLES where upper(table_schema) = upper(?) and table_type = 'BASE TABLE') t limit 1,10;

(3)、gaussdb

sql 复制代码
select t.* from (select table_name,table_type from INFORMATION_SCHEMA.TABLES where upper(table_catalog) = upper(?) and table_type = 'BASE TABLE') t limit 10 offset 1;

(4)、PostgreSQL

sql 复制代码
select t.* from (select table_name,table_type from INFORMATION_SCHEMA.TABLES where upper(table_schema) = upper(?) and table_type = 'BASE TABLE') t limit 10 offset 1;

二、分页获取数据库用户的所有视图

(1)、Oracle,OceanBase(Oracle内核版),DM

使用ALL_TABLES,需要添加当前用户作为查询条件

sql 复制代码
select a3.* from (select a2.* from  (select  a1.*, rownum rn1 from (
select t1.view_name, t2.comments from ALL_VIEWS t1, ALL_TAB_COMMENTS t2 WHERE t1.view_name = t2.table_name and upper(t1.owner) = upper(?)
) a1) a2 where rn1 <= 10 ) a3 where rn1 >= 1;

使用USER_TABLES,直接就可以查到当前用户下的表

sql 复制代码
select a3.* from (select a2.* from  (select  a1.*, rownum rn1 from (
select t1.view_name, t2.comments from USER_VIEWS t1, USER_TAB_COMMENTS t2 WHERE t1.view_name = t2.table_name
) a1) a2 where rn1 <= 10 ) a3 where rn1 >= 1;

(2)、MySQL

sql 复制代码
select t.* from (select table_name,table_type,TABLE_COMMENT from INFORMATION_SCHEMA.TABLES where upper(table_schema) = upper(?) and table_type = 'VIEW') t limit 1,10;

(3)、gaussdb

sql 复制代码
select t.* from (select table_name,table_type from INFORMATION_SCHEMA.TABLES where upper(table_catalog) = upper(?) and table_type = 'VIEW') t limit 10 offset 1;

(4)、PostgreSQL

sql 复制代码
select t.* from (select table_name,table_type from INFORMATION_SCHEMA.TABLES where upper(table_schema) = upper(?) and table_type = 'VIEW') t limit 10 offset 1;

三、查询数据库用户表的列信息

(1)、Oracle,OceanBase(Oracle内核版),DM

使用ALL_TAB_COLUMNS,需要添加当前用户作为查询条件

sql 复制代码
select * from ALL_TAB_COLUMNS where upper(table_name) = upper(?) and upper(owner) = upper(?);

使用USER_TAB_COLUMNS,直接就可以查到当前用户下的表

sql 复制代码
select * from USER_TAB_COLUMNS where upper(table_name) = upper(?);

(2)、MySQL,gaussdb

sql 复制代码
select * from information_schema.COLUMNS where upper(table_name) = upper(?) and upper(table_schema) = upper(?);

(3)、PostgreSQL

sql 复制代码
select * from information_schema.COLUMNS where upper(table_name) = upper(?) and upper(table_catalog) = upper(?);

四、获取数据库用户的所有表索引

(1)、Oracle,OceanBase(Oracle内核版),DM

使用ALL_IND_COLUMNS,需要添加当前用户作为查询条件

sql 复制代码
select * from ALL_IND_COLUMNS where upper(table_name) = upper(?) AND upper(index_owner) = upper(?);

使用USER_IND_COLUMNS,直接就可以查到当前用户下的表

sql 复制代码
select * from USER_IND_COLUMNS where upper(table_name) = upper(?);

(2)、MySQL

sql 复制代码
select * from INFORMATION_SCHEMA.STATISTICS where upper(table_name) = upper(?) and upper(table_schema) = upper(?);

(3)、gaussdb,PostgreSQL

sql 复制代码
select * from pg_indexes t where upper(tablename) = upper(?) and upper(schemaname) = upper(?);
相关推荐
jiayou6416 小时前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区3 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1773 天前
《从零搭建NestJS项目》
数据库·typescript
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest3 天前
数据库SQL学习
数据库·sql
jnrjian3 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle