加入收藏 | 设为首页 | 会员中心 | 我要投稿 海南站长网 (https://www.0898zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mysql多个数据库查询_如何跨多个数据库查询

发布时间:2022-10-14 13:31:33 所属栏目:MsSql教程 来源:互联网
导读: 2019 年 6 月 4 日mssql数据库,由 Robert Gravelle 撰写
随着主从(Master-Slave)拓扑和数据库分片等现代实践变得越来越普遍,数据库管理员(DBA)和开发人员比以往更常同时访问多个数据库。

2019 年 6 月 4 日mssql数据库,由 Robert Gravelle 撰写

随着主从(Master-Slave)拓扑和数据库分片等现代实践变得越来越普遍,数据库管理员(DBA)和开发人员比以往更常同时访问多个数据库。通过使用可以容纳多个数据库连接的软件,令这些工作变得更加容易。

Navicat Premium就是专为这工作而设。它是一套数据库开发工具,让你同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它亦与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。

在今天的文章中,我们将学习如何构建和运行 SELECT 查询。该查询将使用 Navicat Premium 的 SQL 编辑器从多个数据库中获取数据。

设置环境

我们需要几个表,每个表都在自己的数据库中。碰巧的是,我有一些 Sakila 示例数据库的副本。我已创建了 actors 表的副本并将其内容在中间拆分为两组,以 A 到 L 开头的名称在第一个数据库中,以 M 到 Z 开头的名称在另一个数据库中。我们将会将两组名称组合成一个结果集。以下是 Navicat 对象窗格中的布局:

961cda1479dc1009e87eb26c96dbd910.png

多个数据库 SELECT 语法

正如你可以在 SELECT 语句中将默认数据库中的表引用为 tbl_name 一样,你也可以在表名前加上数据库名用于显式指定数据库,例如:db_name.tbl_name。数据库前缀也可用于在一个SELECT语句的表列表中组合不同数据库,如 FROM 关键字后面指定的那样。因此,以下是有效的SQL:

SELECT database1.table1.field1,

database2.table1.field1

FROM database1.table1,

database.table1

WHERE database1.table1.age > 12;

使用 JOIN

你可以像往常一样联接(JOIN)表。只需通过在表前添加数据库名称来确保完全限定表名称:

SELECT *

FROM database1.table1 T1

JOIN database2.table1 AS T2 ON T1.id = T2.id

如果您不需要用公共字段联接(JOIN)表,则可以使用 UNION 运算符组合多个 SELECT 语句:

SELECT *

FROM database1.table1 T1

WHERE T1.age > 12

UNION

SELECT *

FROM database2.table1 T2

WHERE T2.age > 12;

现在我们知道如何一次查询两个表,让我们在 actors 表上尝试类似的查询。 我们将选择(SELECT) ID 在特定范围之间的演员:

SELECT T1.actor_id,

T1.first_name,

T1.last_name

FROM sakila.`actor_a-l` T1

WHERE T1.actor_id BETWEEN 30 AND 50

UNION

SELECT T2.actor_id,

T2.first_name,

T2.last_name

FROM sakila2.`actor_m-z` T2

WHERE T2.actor_id BETWEEN 30 AND 50

ORDER BY last_name;

你可以得到保存在于 A-L 表中的演员的结果,而有些演员是来自 M-Z 表:

4ccce397332086954d2949d1b8c9a0f8.png

总结

在本篇文章中,我们学习了如何使用 Navicat Premium 构建和运行 SELECT 查询,从多个数据库中获取数据。Navicat 的自动完成代码和自定义的代码段功能透过关键字建议和减少重复输入相同的代码,令编码更加快速。你可以免费试用 14 天进行评估。

(编辑:海南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!