SQL - 显示表(列出表)



在某些情况下,您需要从数据库中检索表列表。这可能是为了测试目的,或者在添加或删除任何表之前识别任何现有表,或者出于任何其他原因。本教程将讨论如何使用简单的 SQL 命令在 MySQL、SQL Server 和 Oracle 中列出所有表。

MySQL - 列出表

您可以使用 SQL **SHOW TABLES** 语句在 MySQL 中列出所选数据库中可用的所有表。

语法

以下是 MySQL 中列出所有 SQL 表的语法:

SHOW TABLES;

示例

以下是一个示例,它将列出 **testDB** 数据库中的所有表。

USE testDB;

SHOW TABLES;

这将根据数据库中可用的表数显示以下输出。

Tables_in_testDB
CALENDAR
CUSTOMERS
COMPANIES
SALARY

SQL Server - 列出表

SQL Server **不提供** SHOW TABLE 命令。相反,我们可以使用“SELECT”语句检索有关数据库中表的信息。我们有三个不同的命令可与 SELECT 语句一起使用以列出数据库中的所有表:

  • sys.tables

  • information_schema.tables

  • sysobjects

SYS.TABLES 视图

以下是使用 **SYS.TABLES** 视图在 SQL 中列出所有表的语法:

SELECT * FROM SYS.TABLES;

以下是上述查询的输出:

name object_id principal_id schema_id
CUSTOMER 4195065 NULL 1
ORDERS 68195293 NULL 1
COMPANIES 100195407 NULL 1
SALARY 2107154552 NULL 1

INFORMATION_SCHEMA.TABLES 视图

以下是使用 **INFORMATION_SCHEMA.TABLES** 视图在 SQL 中列出所有表的语法:

SELECT table_name, table_type FROM INFORMATION_SCHEMA.TABLES;

以下是上述查询的输出:

table_name table_type
CUSTOMER BASE TABLE
ORDERS BASE TABLE
COMPANIES BASE TABLE
SALARY BASE TABLE

SYSOBJECTS 视图

您可以使用 **SYSOBJECTS** 视图检索 SQL Server 数据库中创建的所有对象的的信息,包括存储过程、视图、系统表和用户定义表。以下是使用 sysobjects 视图的基本语法:

SELECT name, id, xtype FROM sysobjects WHERE xtype = 'U';
含义
AF聚合函数 (CLR)
CCHECK 约束
D默认值或 DEFAULT 约束
FFOREIGN KEY 约束
L日志
FN标量函数
FS程序集 (CLR) 标量函数
FT程序集 (CLR) 表值函数
IF内联表值函数
IT内部表
P存储过程
PC程序集 (CLR) 存储过程
PKPRIMARY KEY 约束 (类型为 K)
RF复制筛选器存储过程
S系统表
SN同义词
SQ服务队列
TA程序集 (CLR) DML 触发器
TF表函数
TRSQL DML 触发器
TT表类型
U用户表
UQUNIQUE 约束 (类型为 K)
V视图
X扩展存储过程

这将产生以下结果:

name id xtype
CUSTOMER 4195065 U
ORDERS 68195293 U
COMPANIES 100195407 U
SALARY 2107154552 U

Oracle - 列出表

您可以使用以下三个 SQL SELECT 语句列出 Oracle 中可用的表。

列出所有表

以下是将列出 Oracle 数据库中所有可用表的 SQL SELECT 语句。

SELECT owner, table_name FROM ALL_TABLES

列出 DBA 表

以下是将列出 Oracle 数据库中所有与 DBA 相关的表的 SQL SELECT 语句。

SELECT owner, table_name FROM DBA_TABLES

列出用户表

以下是将列出 Oracle 数据库中所有用户创建的表的 SQL SELECT 语句。

SELECT owner, table_name FROM USER_TABLES

列出所有视图

以下是将列出 Oracle 数据库中所有可用视图的 SQL SELECT 语句。

SELECT view_name FROM ALL_VIEWS;
广告