MySQL显示表:MySQL数据库中的列表表

时间:2019-11-20 08:52:36  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用MySQL SHOW TABLES命令查询特定数据库中的表。

要列出MySQL数据库中的表,请执行以下步骤:

  • 使用MySQL客户端(例如mysql)登录到MySQL数据库服务器

  • 使用USE语句切换到特定的数据库。

  • 使用SHOW TABLES命令。

以下说明了MySQL SHOW TABLES命令的语法:

SHOW TABLES;

MySQL SHOW TABLES示例

以下示例显示了如何在classicmodels数据库中列出该表。

步骤1.连接到MySQL数据库服务器:

>mysql -u root -p
Enter password: **********
mysql>

步骤2.切换到classicmodels数据库:

mysql> use classicmodels;
Database changed
mysql>

步骤3.在classicmodels数据库中显示表:

> show tables;
+-------------------------+
| Tables_in_classicmodels |
+-------------------------+
| customers               |
| employees               |
| offices                 |
| orderdetails            |
| orders                  |
| payments                |
| productlines            |
| products                |
+-------------------------+
8 rows in set (0.00 sec)

SHOW TABLES命令允许您显示表是基表还是视图。
要在结果中包括表类型,请使用以下形式的SHOW TABLES语句。

SHOW FULL TABLES;

让我们在classicmodels数据库中创建一个名为contact的视图,其中包含来自employee和customers表中的名字,姓氏和电话以进行演示。

CREATE VIEW contacts 
AS 
SELECT lastName, firstName, extension as phone 
FROM employees 
UNION
SELECT contactFirstName, contactLastName, phone 
FROM customers;

现在,您发出SHOW FULL TABLES命令:

> SHOW FULL TABLES
+-------------------------+------------+
| Tables_in_classicmodels | Table_type |
+-------------------------+------------+
| contacts                | VIEW       |
| customers               | BASE TABLE |
| employees               | BASE TABLE |
| offices                 | BASE TABLE |
| orderdetails            | BASE TABLE |
| orders                  | BASE TABLE |
| payments                | BASE TABLE |
| productlines            | BASE TABLE |
| products                | BASE TABLE |
+-------------------------+------------+
9 rows in set (0.00 sec)

如您所见,除联系人表(视图)外,所有表都是基表。

对于具有许多表的数据库,一次显示所有表可能并不直观。

幸运的是,SHOW TABLES命令为您提供了一个选项,使您可以使用LIKE运算符或WHERE子句中的表达式来过滤返回的表,如下所示:

SHOW TABLES LIKE pattern;

SHOW TABLES WHERE expression;

例如,要显示classicmodels数据库中所有以字母p开头的表,请使用以下语句:

> SHOW TABLES LIKE 'p%';
+------------------------------+
| Tables_in_classicmodels (p%) |
+------------------------------+
| payments                     |
| productlines                 |
| products                     |
+------------------------------+
3 rows in set (0.00 sec)

要显示以字符串" es"结尾的表,请使用以下语句:

> SHOW TABLES LIKE '%es';
+-------------------------------+
| Tables_in_classicmodels (%es) |
+-------------------------------+
| employees                     |
| offices                       |
| productlines                  |
+-------------------------------+
3 rows in set (0.00 sec)

以下语句说明了如何在SHOW TABLES语句中使用WHERE子句来列出classicmodels数据库中的所有视图。

> SHOW FULL TABLES WHERE table_type = 'VIEW';
+-------------------------+------------+
| Tables_in_classicmodels | Table_type |
+-------------------------+------------+
| contacts                | VIEW       |
+-------------------------+------------+
1 row in set (0.00 sec)

有时,您想查看数据库中未连接的表。
在这种情况下,可以使用SHOW TABLES语句的FROM子句指定要从中显示表的数据库。

下面的示例演示如何显示以" time"开头的表;

> SHOW TABLES FROM mysql LIKE 'time%';
+---------------------------+
| Tables_in_mysql (time%)   |
+---------------------------+
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
+---------------------------+
5 rows in set (0.00 sec)

以下语句与上面的语句等效,但是使用IN而不是FROM。

SHOW TABLES IN mysql LIKE 'time%';

重要的是要注意,如果您没有基表或视图的特权,它将不会显示在SHOW TABLES命令的结果集中。

在本教程中,您学习了如何使用MySQL SHOW TABLES语句列出特定数据库中的所有表。