MySQL列出所有表

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

要在MySQL数据库中列出所有表,请按照下列步骤操作:

使用MySQL客户端(如mysql)登录到MySQL数据库服务器使用USE语句切换到特定的数据库。使用SHOW TABLES命令。

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

SHOW TABLES;

MySQL SHOW TABLES示例以下示例说明如何列出zaixiandb数据库中的所有表。

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

C:\Users\Administrator>mysql -u root -p

步骤2 -切换到zaixiandb数据库:

mysql> USE zaixiandb;

Database changed

mysql>

步骤3 - 显示zaixiandb数据库中的所有表:

mysql> show tables;

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

| Tables_in_zaixiandb |

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

| aboveavgproducts |

| article_tags |

| bigsalesorder |

| contacts |

| customerorders |

| customers |

| departments |

| employees |

| employees_audit |

| officeinfo |

| offices |

| offices_bk |

| offices_usa |

| orderdetails |

| orders |

| organization |

| payments |

| price_logs |

| productlines |

| products |

| saleperorder |

| user_change_logs |

| v_contacts |

| vps |

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

24 rows in set

SHOW TABLES命令可显示表是基表还是视图。 要在结果中包含表类型,请使用SHOW TABLES语句,如下所示 -

SHOW FULL TABLES;

执行上面语句,如下所示 -

mysql> SHOW FULL TABLES;

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

| Tables_in_zaixiandb | Table_type |

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

| aboveavgproducts | VIEW |

| article_tags | BASE TABLE |

| bigsalesorder | VIEW |

| contacts | BASE TABLE |

| customerorders | VIEW |

| customers | BASE TABLE |

| departments | BASE TABLE |

| employees | BASE TABLE |

| employees_audit | BASE TABLE |

| officeinfo | VIEW |

| offices | BASE TABLE |

| offices_bk | BASE TABLE |

| offices_usa | BASE TABLE |

| orderdetails | BASE TABLE |

| orders | BASE TABLE |

| organization | VIEW |

| payments | BASE TABLE |

| price_logs | BASE TABLE |

| productlines | BASE TABLE |

| products | BASE TABLE |

| saleperorder | VIEW |

| user_change_logs | BASE TABLE |

| v_contacts | VIEW |

| vps | VIEW |

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

24 rows in set

我们在zaixiandb数据库中创建一个名为view_contacts的视图,其中包括来自employees和customers表的名字,姓氏和电话。

CREATE VIEW view_contacts

AS

SELECT lastName, firstName, extension as phone

FROM employees

UNION

SELECT contactFirstName, contactLastName, phone

FROM customers;

现在,执行查询SHOW FULL TABLES命令:

mysql> SHOW FULL TABLES;

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

| Tables_in_zaixiandb | Table_type |

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

| aboveavgproducts | VIEW |

| article_tags | BASE TABLE |

| bigsalesorder | VIEW |

| contacts | BASE TABLE |

| customerorders | VIEW |

| customers | BASE TABLE |

| departments | BASE TABLE |

| employees | BASE TABLE |

| employees_audit | BASE TABLE |

| officeinfo | VIEW |

| offices | BASE TABLE |

| offices_bk | BASE TABLE |

| offices_usa | BASE TABLE |

| orderdetails | BASE TABLE |

| orders | BASE TABLE |

| organization | VIEW |

| payments | BASE TABLE |

| price_logs | BASE TABLE |

| productlines | BASE TABLE |

| products | BASE TABLE |

| saleperorder | VIEW |

| user_change_logs | BASE TABLE |

| v_contacts | VIEW |

| view_contacts | VIEW |

| vps | VIEW |

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

25 rows in set

您可以看到,v_contacts,view_contacts,vps等是视图(VIEW),而其它表则都是基表(BASE TABLE)。

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

幸运的是,SHOW TABLES命令提供了一个选项,允许使用LIKE运算符或WHERE子句中的表达式对返回的表进行过滤,如下所示:

SHOW TABLES LIKE pattern;

SHOW TABLES WHERE expression;

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

mysql> SHOW TABLES LIKE 'p%';

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

| Tables_in_zaixiandb (p%) |

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

| payments |

| price_logs |

| productlines |

| products |

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

4 rows in set

或者显示以’es‘字符串结尾的表,可使用以下语句:

mysql> SHOW TABLES LIKE '%es';

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

| Tables_in_zaixiandb (%es) |

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

| employees |

| offices |

| productlines |

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

3 rows in set

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

mysql> SHOW FULL TABLES WHERE table_type = 'VIEW';

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

| Tables_in_zaixiandb | Table_type |

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

| aboveavgproducts | VIEW |

| bigsalesorder | VIEW |

| customerorders | VIEW |

| officeinfo | VIEW |

| organization | VIEW |

| saleperorder | VIEW |

| v_contacts | VIEW |

| view_contacts | VIEW |

| vps | VIEW |

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

9 rows in set

有时,希望看到非当前使用的数据库中的表。可以使用SHOW TABLES语句的FROM子句来指定要显示表的数据库。

以下示例演示如何显示以’time‘开头的表;

mysql> 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

以下语句相当于上面的语句,但它使用IN而不是FROM子句,如下所示 -

mysql> SHOW TABLES IN 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

请注意,如果您没有基表或视图的权限,则它不会显示在SHOW TABLES命令的结果集中。

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

上一篇:

MySQL管理

下一篇:

MySQL全文搜索

Copyright © 2022 历届世界杯_世界杯篮球 - cnfznx.com All Rights Reserved.