彩票走势图

数据库管理工具Navicat Premium使用教程:如何实现跨多个数据库查询|附代码

转帖|使用教程|编辑:鲍佳佳|2020-08-25 09:47:04.810|阅读 1141 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

如何跨多个数据库查询

随着主从(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、阿里云、腾讯云和华为云等云数据库兼容。

点击下载Navicat Premium最新试用版

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

设置环境

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

多个数据库 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 表:

总结

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


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP