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;