在mysql数据库的日常管理和开发工作中,查看当前数据库下存储的所有表列表是基础且高频的操作,SHOW TABLES语句是mysql官方提供的用于实现该需求的内置命令,使用起来简单直接,不需要复杂的查询条件配置。

SHOW TABLES基础语法
最基础的SHOW TABLES用法不需要额外参数,执行后会返回当前默认数据库下的所有非临时表名称。使用该语句前需要先切换到目标数据库,或者通过指定数据库名称的方式查询其他数据库的表列表。
基础用法示例
首先连接到mysql服务,切换到目标数据库后执行语句:
-- 切换到test数据库 USE test; -- 查看test数据库下的所有表 SHOW TABLES;
如果当前没有选中任何数据库,直接执行SHOW TABLES会返回错误提示,提示需要先选择数据库。
指定数据库查询表列表
如果不想先切换数据库,可以直接在SHOW TABLES后面加上FROM关键字指定目标数据库名称,语法格式如下:
-- 直接查看test数据库下的所有表,不需要提前USE test SHOW TABLES FROM test;
这种方式适合需要在多个数据库之间快速切换查看表列表的场景,不需要反复执行USE语句切换默认数据库。
筛选特定表名
SHOW TABLES支持配合LIKE关键字进行模糊匹配,筛选出符合特定规则的表名,语法格式如下:
-- 查看test数据库中表名以user开头的表 SHOW TABLES FROM test LIKE 'user%'; -- 查看test数据库中表名包含log的表 SHOW TABLES FROM test LIKE '%log%';
LIKE后面的匹配规则和SELECT语句中的LIKE用法一致,%代表任意长度的字符,_代表单个字符。
返回结果说明
SHOW TABLES语句的执行结果默认返回一个列,列名为Tables_in_数据库名,比如查询test数据库的表时,列名就是Tables_in_test。如果需要自定义返回列的别名,可以使用AS关键字:
-- 自定义返回列的别名 SHOW TABLES FROM test AS table_list;
此时返回的结果列名会显示为table_list,方便后续处理结果时识别列含义。
注意事项
- SHOW TABLES默认只返回当前用户有权限查看的表,没有权限的表不会出现在结果中。
- 该语句不会返回临时表,如果需要查看临时表,需要通过查询information_schema库的TABLES表实现。
- 如果指定的数据库不存在,执行SHOW TABLES FROM 不存在的数据库名会返回错误提示。
替代查询方式
除了使用SHOW TABLES语句,还可以通过查询information_schema库的TABLES表获取表列表,这种方式支持更复杂的筛选条件:
-- 查询test数据库下的所有普通表 SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_TYPE = 'BASE TABLE';
这种方式适合需要结合表的其他属性进行筛选的场景,比如同时筛选表名和表的存储引擎类型。
mysqlSHOW_TABLES数据库表查询语句修改时间:2026-06-14 03:39:23