MySQL显示表:MySQL数据库中的列表表
简介:在本教程中,您将学习如何使用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语句列出特定数据库中的所有表。