在 MySQL 中使用 SHOW TABLES 列出数据库中的表
本文介绍了在 MySQL 中如何使用 SHOW TABLES 语句列出指定数据库中的表。
有时候,您需要查询当前数据库中的所有的表,或者检查当前数据库中是否存在指定的表。
MySQL 提供了 SHOW TABLES 命令用来显示指定数据库中的表。
MySQL SHOW TABLES 语法
以下是 MySQL SHOW TABLES 命令的语法:
SHOW TABLES [FROM database_name] [LIKE pattern];
在这个语法中:
FROM database_name指明了要从中列出表的数据库。它是可选的。如果未指定,则从默认数据库中获取。LIKE pattern用来过滤结果,返回符合条件的表的列表。
如果您还没有指定的默认的数据并且在 在 SHOW TABLES 命令中没有使用 FROM,则 MySQL 会返回一个错误:ERROR 1046 (3D000): No database selected 。
MySQL 显示表实例
以下实例显示如何列出 Sakila 示例数据库的表。
-
使用 mysql 客户端工具连接到 MySQL 服务器:
mysql -u root -p输入
root帐户的密码并按Enter:Enter password: ******** -
直接运行下面的命令尝试列出所有的表:
SHOW TABLES;此时,MySQL 会返回一个错误:ERROR 1046 (3D000): No database selected 。 因为您还未指定默认的数据库。
-
使用
FROM子句指定要从中获取表的数据库:SHOW TABLES FROM sakila;这里,通过
FROM关键字指定了要列出数据库sakila中的所有的表。下面是输出:+----------------------------+ | Tables_in_sakila | +----------------------------+ | actor | | actor_copy | | actor_info | | address | | category | | city | | country | | customer | | customer_list | | film | | film_actor | | film_category | | film_list | | film_text | | inventory | | language | | nicer_but_slower_film_list | | payment | | rental | | sales_by_film_category | | sales_by_store | | staff | | staff_list | | store | | student | | student_score | | subscribers | | test | | user | +----------------------------+ -
使用
USE命令设置默认的数据库:USE sakila; -
直接运行下面的命令尝试列出所有的表:
SHOW TABLES;此时, 此命令的输出和上面的命令
SHOW TABLES FROM sakila;相同。这是因为此时的默认数据库是sakila。我们不需要在SHOW TABLES中通过FROM指定数据库名。 -
通过下面的语句返回名字以
a开头的表:SHOW TABLES LIKE 'a%';+-----------------------+ | Tables_in_sakila (a%) | +-----------------------+ | actor | | actor_copy | | actor_info | | address | +-----------------------+这里模式
'a%'会匹配以a开头且任意长度的字符串。
结论
在本文中,您学习了在 MySQL 中如何使用 SHOW TABLES 语句列出指定数据库中的表。