MySQL 显示或列出数据库
当我们使用MySQL服务器时,显示或列出数据库是一个常见的任务,它显示特定数据库中的表以及驻留在服务器上的用户帐户及其权限的信息。在本文中,我们将重点介绍如何在MySQL服务器中列出数据库。
我们可以使用以下命令列出MySQL服务器主机上可用的所有数据库,如下所示:
mysql> SHOW DATABASES;
打开随着 mysql > **提示出现的MySQL命令行客户端。接下来 **登录 到安装MySQL期间创建的 密码 的MySQL数据库服务器。现在,您已连接到MySQL服务器主机,可以执行所有SQL语句。最后,运行SHOW数据库命令以列出/显示数据库。
我们可以看到以下输出,更清楚地解释了它:
MySQL还允许我们使用另一个命令来列出数据库,即 SHOW SCHEMAS 语句。该命令是SHOW DATABASES的同义词,结果相同。我们可以通过以下的输出来理解它:
使用模式匹配列出数据库
在MySQL中,在Show Databases命令中还提供了一个选项,允许我们使用不同的模式匹配和LIKE和WHERE子句来过滤返回的数据库。LIKE子句列出与指定模式匹配的数据库名称。WHERE子句提供更灵活的方式来在SQL语句中列出与给定条件匹配的数据库。
语法
以下是使用Show Databases命令进行模式匹配的语法:
mysql> SHOW DATABASES LIKE pattern;
OR,
mysql> SHOW DATABASES WHERE expression;
我们可以通过下面的示例来理解,在这个示例中, 百分比(%)符号 可以代表零个、一个或多个字符:
mysql> SHOW DATABASES LIKE "%schema";
以上语句将会产生以下输出:
有时候LIKE子句是不够的;在这种情况下,我们可以对信息模式中的模式表进行更复杂的搜索以查询数据库信息。MySQL中的信息模式是一个信息数据库,因此我们可以使用它来通过SHOW DATABASES命令获取输出。
mysql> SELECT schema_name FROM information_schema.schemata;
这个语句将会给出和SHOW DATABASES命令相同的结果:
现在,我们将看到如何在SHOW DATABASES命令中使用WHERE子句。该语句返回以 “s” 开头的模式名称的数据库:
mysql>SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 's%';
它将产生以下输出:
注意:需要注意的是,如果MySQL服务器启动时带有“–skip-show-databases”选项,除非我们拥有SHOW DATABASES权限,否则无法使用SHOW DATABASES命令。