PhpStorm 2026.3 Help

运行查询

启用 数据库工具和 SQL 插件

此功能依赖于 数据库工具和 SQL 插件,该插件默认情况下已捆绑并在 PhpStorm 中启用。 如果相关功能不可用,请确保您未禁用该插件。

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

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

可以使用快捷键、工具栏按钮、上下文菜单和运行/调试配置来运行查询。 您可以在 查询控制台s、 临时文件和 用户文件中执行此操作。

有关在哪里以及如何查看查询结果的更多信息,请参阅 查询结果。

运行语句和过程

在查询控制台中运行语句

  1. 在 数据库 工具窗口中,点击数据源。

  2. 按 F4 打开一个 查询控制台。 有关使用 查询控制台s 的更多信息,请参阅 查询控制台。

  3. 请输入您想要执行的语句。

  4. 请点击 “执行”按钮执行 工具栏。 或者按 Ctrl+Enter。

    如果您有多个语句,请选择是要执行所有语句还是单个语句。 建议列表总是包含运行所有语句的选项。

运行查询

从打开的文件运行语句

在 PhpStorm 中,您可以打开并运行文件。 文件大小限制为 20 MB。 当您打开一个大于 20 MB 的文件时,您只能看到文件的前 2.5 MB。 该文件应与 SQL 文件类型相关联。 有关文件类型关联的更多信息,请参阅 文件类型关联主题。

  1. 打开 项目 工具窗口(视图 | 工具窗口 | 项目 ),然后双击一个 SQL 文件。

    有关在 PhpStorm 中附加目录和文件的更多信息,请参阅 用户文件。

  2. 点击您要执行的语句。

    此外,您可以选择(高亮显示)要执行的代码片段。 它可以是一个子查询或一组语句。 PhpStorm 仅执行所选内容。

  3. 点击工具栏上的 “执行”按钮执行 按钮。 或者按 Ctrl+Enter。

    若要自定义查询执行设置,请点击 自定义 链接。 或者,按下 Ctrl+Alt+S 打开设置,然后导航至 工具 | 数据库 | 查询执行。 。

  4. (可选)如果 SQL 文件未连接到数据源,请在 <用户定义>> 列表中选择您想连接的数据源。

    有关将 SQL 文件附加到数据源的更多信息,请参阅 数据源附件。

  5. 在 语句 窗口中,按下 Enter 以运行选定的语句。 您可以切换到其他条目以运行另一组语句。 您将要执行的语句会在查询编辑器中高亮显示。

    如需运行脚本文件的另一个示例,请参阅 youtube.com 上的以下视频。

运行存储过程

存储过程是一组具有指定名称的 SQL 语句。 您可以在 PostgreSQL、Microsoft SQL Server、Oracle 和 MySQL 中执行存储过程。

  1. 右键点击要执行的存储函数,然后选择 运行功能。

  2. 在 执行例程 窗口中,输入所有必要的参数值,然后点击 确定。

    如有必要,请选中 从...运行 复选框并选择文件或控制台以运行存储的函数。

    运行存储过程

运行 SELECT 语句并将结果保存到文件中

  1. (可选)如果文件没有连接到数据源,请从工具栏上的数据源列表中选择一个数据源。 然后从 会话 列表中选择连接会话。

    如需了解有关连接会话的更多信息,请参阅 会话。

  2. 右键点击 SELECT 语句。

  3. 请选择 执行到文件 并选择输出格式。

  4. 在 导出数据 对话框中,指定您要使用的 extractor 和其他设置。

    有关 导出数据 对话框的更多信息,请参阅 导出数据 主题。

将 SELECT 语句的结果保存到文件中

从结构工具窗口运行语句

  • 在 结构 工具窗口 Alt+7 中,选择一个或多个语句,右键点击它们,然后选择 执行。

运行跨数据库查询

在 PhpStorm 中,可以跨不同数据库查询数据并直接查看结果,而无需事先复制数据。

  1. 在 数据库 工具窗口工具栏上,点击 "添加"图标添加 并选择 工作区数据源图标工作区数据源。

    PhpStorm 会创建 工作区 数据源,并自动打开其默认 查询控制台。

  2. 在 查询控制台 中,编写 SELECT ... FROM 查询。 使用 Ctrl+Space 代码补全来选择数据源和数据库对象。

    例如,连接来自 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;

    有关特殊语法的更多信息,请参阅 语法。

  3. 请点击 “执行”按钮执行 工具栏。 或者按 Ctrl+Enter。

有关中间节点和语法的更多信息,请参阅 跨数据库查询 主题。

连接来自 PostgreSQL 和 MySQL 数据源的数据的跨数据库查询示例

查看查询执行设置

  • 打开一个 查询控制台,然后在其工具栏上点击 "打开数据库设置"图标打开查询执行设置。

取消运行语句

  • 要取消正在执行的语句,请点击工具栏上的 取消正在运行语句图标取消正在运行的语句。

    或者,将鼠标悬停在装订区域的进度指示器上,然后点击替换进度图标的 取消正在运行语句图标取消正在运行的语句。

如果您点击 取消正在运行语句图标取消正在运行的语句 按钮两次,PhpStorm会显示一个警告,您可以终止远程进程或稍等片刻。 显示此警告是为了确保安全,因为停用可能会对某些同时发生的进程造成潜在危险。

此外,IDE 会在空闲取消 10 秒后显示警告。

取消连接

您不仅可以中断请求的执行,还可以中断连接的创建。 这对于 查询控制台 中的第一个查询尤其重要,因为它也会创建连接。

您可以停止创建连接的过程。 为此,请在创建连接时点击工具栏上的 取消正在运行语句图标取消正在运行的语句。 连接将会停止,并且您将看到 连接已取消 消息。

解决模式

为了运行 SQL 脚本,将数据库对象的用法视为链接,并为您提供正确的代码补全,PhpStorm 必须将代码中的数据库对象解析到某个特定的上下文。 默认情况下,IDE 使用以下之一作为解析数据库对象的起点: <schema> 选择器,或默认数据库(如果未设置上述任何一项)。

根据您的代码是单个脚本还是包含多个不相关的 SQL 语句,请选择以下一种解析模式,以正确解析数据库对象:

  • 游乐场 :查询控制台s的默认模式。 所有数据库对象都解析到相同的上下文。

    如果您的代码是一组不打算作为单个脚本运行的独立 SQL 语句,请使用此模式。

  • 脚本 :本地 SQL 文件的默认模式。 USE SQL 语句(针对 PostgreSQL,为 SET search_path TO )会覆盖数据库对象解析到的默认上下文。

    如果您的代码旨在作为单个脚本运行,请使用此模式。

在下面的视频中, public 架构被选为 查询控制台 的默认架构。 该架构包含 actor 表,而 information_schema 架构不包含该表。 当解析模式为 游乐场 时,数据库对象在 SELECT 语句中解析为默认架构,因为所有语句都被视为无关。

一旦将解析模式更改为 脚本 ,第二个 SELECT 语句将被视为与 SET search_path TO information_schema 语句相关。 该 actor 表在该语句中不再解析。

用户参数

根据数据库供应商,问号 ? 在 SQL 语句中被视为参数。 您可以在 工具 | 数据库 | 查询执行 | 用户参数 设置页面 Ctrl+Alt+S 中指定哪些其他字符及其序列应被视为参数,以及在哪些位置。

SQL 参数的模式通过使用正则表达式指定。

运行参数化语句

如果您的语句中有参数,PhpStorm 会在您执行语句之前提示您指定参数的值。

  • 要执行参数化语句,请点击工具栏上的 “执行”按钮执行 ,并在第二列中输入值。 或者,要打开 参数 对话框,请点击 查看参数按钮查看参数。

    执行参数化语句

命名行为

在 PhpStorm 中,您可以使用 位置 和 命名 用户参数。 对于位置用户参数,每次出现都会根据其顺序单独处理。 对于指定名称的用户参数,具有相同名称的所有出现项都会被视为同一个参数。

要使用命名参数,请按 Ctrl+Alt+S 打开设置,并导航到 工具 | 数据库 | 查询执行 | 用户参数。 在 参数模式 窗格中,将 () 添加到您的用户参数模式。 IDE 会将 () 的内容视为参数名称,并且在您运行脚本时只请求一个值。 否则,如果在脚本中多次使用同一个参数,IDE 会根据参数的顺序请求多个值。

请参考以下示例:

SELECT * FROM my_table WHERE a = ?x OR b = ?x;
  • \?\w+ :位置用户参数模式。 ?x 参数被视为两个不同的用户参数。 值会根据参数的顺序进行请求。

    运行带有常规用户参数的语句
  • \?(\w+) :命名用户参数模式。 两个 ?x 被视为同一个用户参数,其中 x 是参数名称。

    运行带有指定名称的用户参数的语句。

有关参数模式的更多信息,请参阅 用户参数参考主题。

示例

将数组作为参数

在 PhpStorm 中,用值替换参数是直截了当的。 要使用数组作为值,请在相应字段中指定您的数组。

在下面的示例中,参数 ? 可以替换为值 206, 'John', 'Smith':

INSERT INTO actor (actor_id, first_name, last_name, last_update) VALUES (?, '01.02.2023 13:34');
将值数组用作参数

有关参数的更多信息,请参阅数据库文档。

参数模式

如果您的脚本中有特定参数语法的参数,请使用正则表达式指定模式。

对于以下示例,必须在 工具 | 数据库 | 查询执行 | 用户参数 设置页面 Ctrl+Alt+S 中设置 %{2}(\w+_\d+) 模式:

SELECT title, description, release_year FROM actor JOIN film_actor fa ON actor.actor_id = fa.actor_id JOIN film f ON f.film_id = fa.film_id WHERE last_name = '%%winnerpl_2';
在 IDE 设置对话框中的参数模式示例

预览表结构

在 IDE 代码编辑器中,您可以使用 快速文档 功能预览 SQL 语句中表的结构。

  • 要预览 SQL 语句中的表结构,请选择表并按 Ctrl+Q。

快速文档 弹出窗口中包含 CREATE DDL 脚本及其他有关该表的信息。

有关此功能的更多信息,请参阅 快速文档。

在编辑器选项卡中预览表结构

查看已执行语句历史

使用"查询历史"对话框

PhpStorm 会存储在 查询控制台 中运行过的所有语句的历史记录。

  • 要打开 查询历史 对话框,请点击工具栏上的 浏览查询历史 按钮(浏览查询历史按钮 ),或按 Ctrl+Alt+E。

    在 查询历史 对话框中,您可以执行以下操作:

    • 要筛选信息,请开始输入您的搜索查询。

    • 要将 查询历史 对话框中的查询粘贴到 查询控制台 中,请在 查询历史 对话框的左侧窗格中双击该查询。

    • 要从历史记录中删除记录,请选择该记录并按下 Delete。

    查看已执行查询的历史记录

查看结果

通常,当您运行查询时,您会收到表格式的结果。 PhpStorm 会在 数据编辑器中显示结果。 默认情况下,对于每个语句,带有结果的数据编辑器会显示在 服务 工具窗口的单独选项卡中。

有关查看查询结果的更多信息,请参阅 查询结果。

服务工具窗口的选项卡中的 SELECT 语句结果
2026年 11月 9日