SQL 显示表格(列出表格)
在许多情况下,您需要从您的数据库中检索表格列表。这可以用于测试目的,在添加或删除之前识别任何现有表格,或者出于任何其他原因。本教程将讨论如何使用简单的SQL命令列出MySQL、SQL Server和Oracle中的所有表格。
MySQL – 列出表格
您可以在MySQL中使用SQL SHOW TABLES 语句列出选定数据库中所有可用的表格。
语法
以下是在MySQL中列出所有表格的语法-
SHOW TABLES;
示例
以下是一个示例,将列出 testDB 数据库中的所有表。
USE testDB;
SHOW TABLES;
根据数据库中可用表的数量,将显示以下输出。
Tables_in_testDB   
---  
CALENDAR   
CUSTOMERS   
COMPANIES   
SALARY   
SQL Server – 列出表格
SQL Server内部没有提供SQL Server中的SHOW TABLE命令。而是我们可以使用”SELECT”语句来检索数据库中表格的信息。我们有三个不同的命令可以与SELECT语句一起使用,以列出数据库中的所有表格 –
- sys.tables
 - 
information_schema.tables
 - 
sysobjects
 
The SYS.TABLES View
以下是使用 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';
xtype的不同值
| 值 | 含义 | 
|---|---|
| AF | 聚合函数 (CLR) | 
| C | CHECK 约束 | 
| D | 默认值或默认约束 | 
| F | 外键约束 | 
| L | 日志 | 
| FN | 标量函数 | 
| FS | 程序集 (CLR) 标量函数 | 
| FT | 程序集 (CLR) 表值函数 | 
| IF | 内联表函数 | 
| IT | 内部表 | 
| P | 存储过程 | 
| PC | 程序集 (CLR) 存储过程 | 
| PK | 主键约束 (类型为 K) | 
| RF | 复制过滤存储过程 | 
| S | 系统表 | 
| SN | 同义词 | 
| SQ | 服务队列 | 
| TA | 程序集 (CLR) DML 触发器 | 
| TF | 表函数 | 
| TR | SQL DML 触发器 | 
| TT | 表类型 | 
| U | 用户表 | 
| UQ | 唯一约束 (类型为 K) | 
| V | 视图 | 
| X | 扩展存储过程 | 
这将产生以下结果−
| name | id | xtype | 
|---|---|---|
| CUSTOMER | 4195065 | U | 
| ORDERS | 68195293 | U | 
| COMPANIES | 100195407 | U | 
| SALARY | 2107154552 | U | 
Oracle – 列出表
以下是您可以使用的三个SQL SELECT语句,用于列出Oracle中可用的表。
列出所有表
以下是SQL SELECT语句,将列出Oracle数据库中所有可用的表。
SELECT owner, table_name FROM ALL_TABLES
列出DBA表
以下是一个SQL SELECT语句,用于列出Oracle数据库中所有与DBA相关的表。
SELECT owner, table_name FROM DBA_TABLES
列出USER表
以下是SQL SELECT语句,它将列出Oracle数据库中所有已创建的USER表。
SELECT owner, table_name FROM USER_TABLES
列出所有视图
以下是SQL SELECT语句,它将列出Oracle数据库中所有可用的视图。
SELECT view_name FROM ALL_VIEWS;
极客教程