SQL 列举模式中的表

SQL 列举模式中的表,你想列出在某个模式里创建的所有表。

SQL 列举模式中的表 问题描述

你想列出在某个模式里创建的所有表。

SQL 列举模式中的表 解决方案

下面的每种解决方案都假设你正在使用 SMEAGOL 模式。每一种解决方案的基本思路都是一致的:检索数据库里的某个系统表(或者视图),你创建的每个表都对应着该系统表里的一行记录。
DB2
查询 SYSCAT.TABLES

1 select tabname
2   from syscat.tables
3  where tabschema = 'SMEAGOL'

Oracle
查询 SYS.ALL_TABLES

select table_name
  from all_tables
 where owner = 'SMEAGOL'

PostgreSQLMySQLSQL Server
查询 INFORMATION_SCHEMA.TABLES

1 select table_name
2   from information_schema.tables
3  where table_schema = 'SMEAGOL'

SQL 列举模式中的表 扩展知识

就像我们为自己的应用程序创建表和视图一样,数据库系统也以表和视图的形式把自身的信息提供给我们。例如,Oracle 数据库含有如 ALL_TABLES 这样的内容丰富的系统视图,可以查询关于表、索引、授权以及其他数据库对象的信息。

Oracle 数据库的目录视图其实就是普通的视图。它们基于一组底层表,但这些表中的信息非常不便于用户读取。目录视图为 Oracle 数据库的元数据提供了一个非常易用的外部接口。

Oracle 的系统视图和 DB2 的系统表各不相同。另外,PostgreSQLMySQL 和 SQL Server 都支持信息模式(information schema),这是按照 ISO SQL 标准定义的一组视图。这就是为什么同一条查询语句能够适用于这三种数据库。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程