在 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
语句列出指定数据库中的表。