用SQL列出数据库
在使用SQL数据库时,您一定会遇到需要检索服务器中可用数据库列表的实例。这在处理或管理多个数据库时特别有用。
不幸的是,不同的数据库引擎提供了不同的机制来检索数据库列表。因此,不存在用于检索数据库的通用技术,因为它依赖于目标RDBMS。
在本教程中,我们将介绍用于列出给定数据库服务器中可用数据库的各种方法和技术。我们将介绍各种数据库引擎,如MySQL、PostgreSQL、SQL Server和SQLite。
要求:
在我们开始列出数据库之前,请确保您具备以下内容:
- 已安装并运行SQL数据库服务器
- 访问服务器和列表数据库的适当权限
最好记住,输出也可能因特定的方法和数据库引擎而异。
列出MySQL中的数据库
让我们从最流行的关系数据库系统之一开始。在MySQL中,我们可以在MySQL shell中使用SHOW DATABASES命令。
首先连接到目标MySQL服务器,示例如下:
$ mysql -u root
这应该作为根用户连接到数据库服务器。为连接到服务器的指定用户名提供密码。
连接后,可以运行SHOW DATABASES命令列出服务器中可用的数据库,如下所示:
Mysql > show databases;
这个查询列出MySQL服务器上所有可用的数据库。
使用示例输出如下:
+--------------------+
|数据库|
+--------------------+
| information_schema |
| mysql |
performance_schema |
| sakila |
| sys |
|测试|
+--------------------+
6行(0.00秒)
方法1:信息模式
如果不能访问MySQL shell,也可以通过从“information_schema”数据库获取信息来使用本地SQL查询。“information_schema”数据库是MySQL中最强大和最有用的内置数据库之一。它包含关于服务器中所有对象的所有信息和元数据。
为了检索服务器中可用数据库的列表,我们可以按如下方式查询数据库:
SELECT schema_name FROM information_schema.schema;
前一个查询检索存储在“information_schema”数据库中的所有数据库的名称。
使用示例输出如下:
+--------------------+
| schema_name |
+--------------------+
| mysql |
| information_schema |
performance_schema |
| sys |
|测试|
| sakila |
+--------------------+
6行(0.00秒)
列出PostgreSQL中的数据库
让我们转到下一个最流行的关系数据库系统:PostgreSQL。在PostgreSQL中,我们可以在PSQL命令行实用程序中使用“\l”命令。
命令如下:
l \
该命令返回服务器中所有可用数据库的列表。
使用示例输出如下:
数据库列表:
名称|所有者|编码|排序| c类型|访问权限
-----------+----------+----------+-------------+-------------+-----------------------
mydb | myuser | UTF8 | en_US。UTF-8 | en_US。utf - 8 |
postgres | postgres | UTF8 | en_US. exeUTF-8 | en_US。utf - 8 |
template0 | postgres | UTF8 | en_US. exeUTF-8 | en_US。UTF-8 | =c/postgres
postgres = CTc / postgres
(3行)
方法2:Pg_database Catalog
我们也可以通过查询“pg_database”目录来列出PostgreSQL中的数据库。这与MySQL中的“information_schema”数据库非常相似。
要列出数据库,执行如下查询:
SELECT datname FROM pg_database;
输出:
datname
-----------
mydb
postgres
template0
(3行)
列出SQL Server中的数据库
接下来是SQL Server,这是另一个流行的关系数据库系统。在SQL Server中,我们可以使用“sp_databases”来列出可用的数据库,这是一个内置的存储过程,用于列出数据库。
EXEC sp_databases;
这将执行“sp_databases”系统存储过程,该过程反过来返回SQL Server上所有数据库的列表。
方法3:系统。数据库目录视图
现在您可以猜到,还有另一种列出SQL Server中的数据库的技术。在这个方法中,我们可以使用“sys。数据库目录视图的查询示例如下:
SELECT name FROM sys.databases
这将从“sys. xml”中检索所有数据库的名称。数据库目录视图。
列出SQLite中的数据库
对于SQLite,我们可以使用内置的"。命令,显示所有可用的数据库,如下所示:
.databases
示例输出:
Seq名称文件
--- --------------- ----------------------------------------------------------
0 main /opt/databases/db/level0/sqlite/database/file.db
1临时
该输出包括主数据库和任何附加的数据库。
结论
在本教程中,我们学习了如何列出各种数据库系统(如MySQL, SQL Server, PostgreSQL和SQLite)中的所有可用数据库。