SQL显示表

SQL表指的是一个基本的数据库对象,它允许我们以结构化格式存储数据。关系数据库中的表由行和列组成,其中每行表示一条记录,列表示记录的特定属性。

表是任何函数关系数据库的主要构建块。因此,与数据库中的任何其他对象相比,您将遇到与它们交互的情况。

在处理SQL表时,您可能遇到的一个常见任务是获取给定数据库中的所有表。

在本教程中,我们将了解用于显示SQL数据库中的表的各种方法和技术。在本文中,我们将使用MySQL 8.0版本。

SQL显示表

在SQL中,SHOW TABLES是一个由各种关系数据库引擎(如MySQL)支持的命令。

它允许我们列出给定数据库中所有可用的表。当您需要快速浏览可用表时,特别是在不熟悉数据库模式的情况下,它非常有用。

基本语法

最好记住,尽管几乎所有数据库引擎都支持在数据库中列出表的功能,但是命令或SQL语句可能会有所不同。

然而,如果你在MySQL中工作,你可以使用本地的SHOW TABLES命令,如下所示:

SHOW TABLES [FROM db_name] [LIKE 'pattern'];

在给定的示例语法中,我们首先调用SHOW TABLES命令。这是列出可用表的主要语句。

接下来,我们指定要显示的数据库。如果省略数据库名称,语句将显示当前选定数据库中的表。

SHOW TABLE语句还支持使用LIKE语句使用类似模式的过滤。这允许我们为匹配指定模式的表指定一个过滤器。我们还可以使用通配符,如“%”来表示零个或多个字符,使用下划线来表示单个字符,等等。

示例1:显示数据库中的所有表

假设我们在MySQL中使用Sakila样例数据库来显示数据库中的所有表,而没有任何额外的过滤。我们可以使用如下所示的查询:

Mysql > show tables;

该命令返回当前数据库中所有表的列表。使用示例输出如下:

+----------------------------+

| Tables_in_sakila |

+----------------------------+

|演员|

| actor_info |

|地址|

|类别|

|城市|

|国家|

|客户|

| customer_list

| emp |

|电影|

电影演员|电影演员

| film_category |

| film_list |

|电影|电影

|库存|

|语言|

| nicer_but_slower_film_list

|付款|

|租赁|

| sales_by_film_category

sales_by_store |

|员工|

| staff_list

|商店|

+----------------------------+

24行(0.00秒)

这将返回存储在Sakila示例数据库中的所有表。

示例2:模式匹配

假设我们要过滤名称中可能包含单词“film”的任何表。我们可以像下面这样使用带有通配符的LIKE子句:

显示'%film%'表;

给定的命令列出当前数据库中所有在表名中包含单词“film”的表。

使用示例输出如下:

+----------------------------+                                                                                                

| Tables_in_sakila(%的电影 %)  |                                                                                                

+----------------------------+                                                                                                

|电影                       |                                                                                                

| film_actor                 |                                                                                                

| film_category              |                                                                                                

| film_list                  |                                                                                                

| film_text                  |                                                                                                

| nicer_but_slower_film_list |                                                                                                

| sales_by_film_category     |                                                                                                

+----------------------------+                                                                                                

7行(0.00秒)

示例3:不同的数据库

要列出特定数据库中的表,可以使用from子句,如下所示:

查看员工表

在本例中,即使我们当前使用的是Sakila数据库,该子句也会从“employees”表返回一个表列表。

使用SQL查询列出表

如果不能访问MySQL CLI,可以使用本地SQL查询列出给定数据库中的所有表。

SQL语句如下:

选择table_name

从information_schema.tables

WHERE table_schema = 'database_name';

这将返回指定模式名中的所有表。

结论

在本教程中,我们学习了有关SQL SHOW TABLES命令的所有内容,该命令允许我们从给定的数据库检索表列表。