MySQL SHOW DATABASES:列出MySQL中的所有数据库

时间:2019-11-20 08:52:35  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用MySQL SHOW DATABASES命令列出MySQL数据库服务器中的所有数据库。

使用MySQL SHOW数据库

要列出MySQL服务器主机上的所有数据库,请使用SHOW DATABASES命令,如下所示:

SHOW DATABASES;

例如,要列出本地MySQL数据库服务器中的所有数据库,请首先登录数据库服务器,如下所示:

>mysql -u root -p
Enter password: **********
mysql>

然后使用SHOW DATABASES命令:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| classicmodels      |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

SHOW SCHEMAS命令是SHOW DATABASES的同义词,因此以下命令返回与上述结果相同的结果:

SHOW SCHEMAS;

如果要查询与特定模式匹配的数据库,请使用LIKE子句,如下所示:

SHOW DATABASES LIKE pattern;

例如,以下语句返回以字符串" schema"结尾的数据库;

SHOW DATABASES LIKE '%schema';
+--------------------+
| Database (%schema) |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.00 sec)

重要的是要注意,如果MySQL数据库服务器以--skip-show-database开头,则除非您具有SHOW DATABASES特权,否则不能使用SHOW DATABASES语句。

从information_schema查询数据库数据

如果LIKE子句中的条件不足,则可以直接从information_schema数据库中的模式表查询数据库信息。

例如,以下查询返回与SHOW DATABASES命令相同的结果。

SELECT schema_name 
FROM information_schema.schemata;

以下SELECT语句返回名称以" schema"或" s"结尾的数据库。

SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE '%schema' OR 
      schema_name LIKE '%s';

它返回以下结果集:

+--------------------+
| SCHEMA_NAME        |
+--------------------+
| information_schema |
| performance_schema |
| sys                |
| classicmodels      |
+--------------------+
4 rows in set (0.00 sec)

在本教程中,您学习了如何使用SHOW DATABASES命令显示MySQL服务器中的所有数据库或如何从information_schema数据库中的模式表查询。