当我们有许多包含各种表的数据库时,show 或 list 表非常重要。有时,许多数据库中的表名是相同的;在这种情况下,此查询非常有用。我们可以使用以下语句获取数据库的表数信息:
mysql> SHOW TABLES;
获取表列表需要执行以下步骤:
步骤 1:打开出现mysql> 提示符的 MySQL 命令行客户端。接下来,使用您在安装 MySQL 期间创建的密码**登录**MySQL 数据库服务器。现在,您已连接到 MySQL 服务器,您可以在其中执行所有 SQL 语句。
第 2 步:接下来,使用以下命令选择特定的数据库:
mysql> USE database_name;
第 3 步:最后,执行 SHOW TABLES 命令。
让我们通过下面给出的例子来理解它。假设我们有一个包含许多表的数据库名称“ mystudentdb ”。然后执行以下语句以列出它包含的表:
mysql> USE mystudentdb;
mysql>SHOW TABLES;
以下输出更清楚地解释了它:
我们还可以在 SHOW TABLES 查询中使用FULL 修饰符来获取出现在第二个输出列中的表类型(基本或视图)。
mysql> SHOW FULL TABLES;
此语句将提供以下输出:
如果我们想在不切换的情况下显示或列出来自不同数据库或未连接的数据库的表名,MySQL 允许我们使用 FROM 或 IN 子句后跟数据库名。下面的语句更清楚地解释了它:
mysql> SHOW TABLES IN database_name;
上面的语句也可以写成:
mysql> SHOW TABLES FROM database_name;
当我们执行以下语句时,我们将得到相同的结果:
mysql> SHOW TABLES FROM mystudentdb;
OR,
mysql> SHOW TABLES IN mystudentdb;
输出:
使用模式匹配显示表格
MySQL 中的 Show Tables 命令还提供了一个选项,允许我们使用 LIKE 和 WHERE 子句使用不同的模式匹配来过滤返回的表。
句法
以下是将模式匹配与 show table 命令一起使用的语法:
mysql> SHOW TABLES LIKE pattern;
OR,
mysql> SHOW TABLES WHERE expression;
我们可以通过下面给出的示例来理解它,其中百分比 (%) 符号假定为零、一个或多个字符:
mysql> SHOW TABLES FROM mystudentdb LIKE "stud%";
上面的语句将给出以下输出:
让我们看看另一个返回以“time”开头的表名的语句:
mysql> SHOW TABLES IN mysql LIKE "time%";
上面的查询将给出以下输出:
现在,我们将看看如何使用WHERE子句和 SHOW TABLES 命令来列出所选数据库中不同类型的表(基本或视图类型):
mysql> SHOW TABLES FROM sakila WHERE table_type= "VIEW";
该语句给出了以下输出:
需要注意的是,如果 MySQL 不提供访问 Base table 或 view 的权限,那么我们将无法获取 SHOW TABLES 命令的结果集中的表。
在这里,我们还可以看到另一个带有 WHERE 子句的 Show Tables 语句示例:
mysql> SHOW TABLES In mystudentdb WHERE Tables_in_mystudentdb= "employees";
它将给出以下输出: