PyCharm 2026.3 Help

跨数据库查询

启用 数据库工具和 SQL 插件

此功能依赖 数据库工具和 SQL 插件,默认随 PyCharm 一起提供并启用。 如果相关功能不可用,请确保没有禁用该插件。

  1. 按下 Ctrl+Alt+S 以打开设置,然后选择 插件。

  2. 找到 数据库工具和 SQL 插件,然后点击 启用。

在 PyCharm 中,可以跨不同数据库查询数据,并直接查看结果,而无需预先复制数据。 IDE 提供一个专用的 工作区 数据源,作为 PyCharm 与所查询数据库之间的中介。 使用其 查询控制台s 通过 Ctrl+Space 代码补全和 特殊语法来编写和执行 SQL 查询。

工作区数据源

工作区 数据源基于 DuckDB ,默认会创建一个内存中的 DuckDB 数据库。 每个项目可以有一个 工作区 数据源,并可根据需要拥有任意数量的 查询控制台s。

工作区数据源设置

创建工作区数据源

  • 在 数据库 工具窗口工具栏上,点击 Add 图标添加 ,然后选择 工作区数据源图标工作区数据源。

PyCharm 会将该数据源添加到 数据库 工具窗口的列表中,并自动打开其默认 查询控制台。

工作区数据源设置

语法

在 工作区 数据源 查询控制台 中,可以使用以下语法引用其他数据源中的表:

  • 要直接引用表,请指定其数据源和表名称。 需要时添加数据库和架构:

    #data_source[.database.schema].table
  • 要筛选表,请将 #filter(...) 添加到引用中:

    #data_source[.database.schema].table.#filter('condition')
  • 也可以使用 #query(...) 对数据源运行查询:

    #data_source[.database.schema].#query('query')

在 #filter(...) 和 #query(...) 中,可以使用 $$...$$ 美元引用字符串代替单引号: #filter($$condition$$) 和 #query($$query$$)。

键入 # 可使用代码补全选择数据源。

跨数据库查询中的代码补全

示例

以下是将该语法与 PostgreSQL 和 MySQL 数据源以及相应 Sakila 数据库配合使用的几个示例:

  • 筛选引用表中的行:

    SELECT * FROM #PostgreSQL.guest.public.customer.#filter('customer_id > 100');
    筛选引用表中行的跨数据库查询示例
  • 对引用的数据源运行查询:

    SELECT * FROM #PostgreSQL.guest.public.#query($$ SELECT customer_id, amount FROM payment WHERE amount > 5 $$);
    对引用的数据源运行查询的跨数据库查询示例
  • 联接来自 PostgreSQL 和 MySQL 数据源的数据:

    SELECT c.first_name, c.last_name, p.amount FROM #PostgreSQL.guest.public.customer c JOIN #MySQL.sakila.payment p ON c.customer_id = p.customer_id;
    联接来自 PostgreSQL 和 MySQL 数据源的数据的跨数据库查询示例
2026年 11月 3日