📅  最后修改于: 2020-11-17 02:10:32             🧑  作者: Mango
当我们有许多包含各种表的数据库时,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修饰符,以获取出现在第二个输出列中的表的类型(Base或View)。
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命令一起使用,以在所选数据库中列出不同类型的表(Base或View类型):
mysql> SHOW TABLES FROM sakila WHERE table_type= "VIEW";
该语句提供以下输出:
注意,如果MySQL不提供访问基本表或视图的特权,那么我们将无法在SHOW TABLES命令的结果集中获得这些表。
在这里,我们还可以看到带有WHERE子句的Show Tables语句的另一个示例:
mysql> SHOW TABLES In mystudentdb WHERE Tables_in_mystudentdb= "employees";
它将给出以下输出: