运行查询
启用 数据库工具和 SQL 插件
此功能依赖 数据库工具和 SQL 插件,该插件在 PyCharm 中默认随附并已启用。 如果相关功能不可用,请确保未禁用该插件。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 已安装 选项卡,找到 数据库工具和 SQL 插件,并选中插件名称旁的复选框。
您可以使用快捷键、工具栏按钮、上下文菜单和运行/调试配置来运行查询。 您可以在 查询文件s、 临时文件 和 用户文件 中执行此操作。
有关在何处以及如何查看查询结果的详细信息,请参阅 查询结果。
运行语句和存储过程
在查询文件中运行语句
您可以将 一个 查询文件 视为一个终端,您可以在其中输入并运行代码。
在 数据库 工具窗口中,点击数据源。
按 F4 打开 查询文件。 有关使用 查询文件s 的详细信息,请参阅 使用 查询文件s。
输入或粘贴您要执行的语句。
点击工具栏上的
执行(X)。 或者,按 Ctrl+Enter。
如果您有多条语句,请选择是执行所有语句还是仅执行一条语句。 建议列表始终包含一个运行所有语句的选项。

从打开的文件运行语句
在 PyCharm 中,您可以打开并运行文件。 文件大小限制为 20 MB。 当您打开大于 20 MB 的文件时,只能看到该文件的前 2.5 MB。 该文件应与 SQL 文件类型关联。 有关文件类型关联的详细信息,请参阅 文件类型关联 主题。
打开 项目 工具窗口( ),然后双击一个 SQL 文件。
有关在 PyCharm 中附加目录和文件的详细信息,请参阅 用户文件。
点击您要执行的语句。
您也可以选择(高亮)要执行的代码片段。 它可以是子查询或一组语句。 PyCharm 仅执行所选内容。
点击工具栏上的 执行(X) 按钮(
)。 或者,按 Ctrl+Enter。
要自定义查询执行设置,请点击 自定义 链接。 或者,按 Ctrl+Alt+S 打开设置并导航到 。 。
(可选)如果该 SQL 文件未附加到数据源,请在 <数据源> 列表中选择您要将其附加到的数据源。
在 语句 窗口中,按 Enter 运行所选语句。 您可以切换到其他条目以运行另一组语句。 您将要执行的语句会在查询编辑器中高亮显示。
有关运行脚本文件的另一个示例,请参阅 youtube.com 上的以下视频。
运行存储过程
存储过程是具有指定名称的一组 SQL 语句。 您可以在 PostgreSQL 、Microsoft SQL Server 、Oracle 和 MySQL 中执行存储过程。
运行 SELECT 语句并将结果保存到文件
(可选)如果该文件未连接到数据源,请在工具栏上的数据源列表中选择一个数据源。 然后在 会话 列表中选择连接会话。
有关连接会话的详细信息,请参阅 会话。
右键点击一条
SELECT语句。选择 执行到文件 ,并选择输出格式。
在 导出数据 对话框中,指定要使用的提取器和其他设置。
有关 导出数据 对话框的详细信息,请参阅 导出数据 主题。

取消正在运行的语句
要取消正在运行的语句,请点击工具栏上的
取消正在运行的语句。
或者,将指针悬停在装订线上的进度指示器上,然后点击替换进度图标的
取消正在运行的语句。
如果您连续点击两次 取消正在运行的语句 按钮,PyCharm 会显示一条警告,您可以在其中终止远程进程或再等待一会儿。 显示此警告是为了确保安全,因为停用对于某些同时进行的进程可能具有潜在危险。
此外, IDE 会在取消操作空闲 10 秒后显示警告。
取消连接
您不仅可以中断请求的执行,还可以中断连接的创建。 这对 查询文件 中的第一个查询尤为相关,因为它也会创建连接。
您可以停止创建连接的过程。 为此,请在创建连接期间点击工具栏上的 取消正在运行的语句 按钮()。 连接将被停止,您将看到 连接已取消 消息。
解析模式
为了运行 SQL 脚本、将数据库对象的用法视为链接并为您提供正确的代码补全,PyCharm 必须将您的代码中的数据库对象解析到特定上下文。 默认情况下, IDE 使用以下其中之一作为解析数据库对象的起点: <schema> 选择器,或默认数据库(如果未设置上述任何一项)。
根据您的代码是单个脚本还是包含多个彼此无关的 SQL 语句,选择以下解析模式之一以正确解析数据库对象:
Playground :查询文件 的默认模式。 所有数据库对象都会解析到相同的上下文。
如果您的代码是一组彼此无关、并非作为单个脚本运行的 SQL 语句,请使用此模式。
脚本 :本地 SQL 文件的默认模式。
USESQL 语句(PostgreSQL 中为SET search_path TO)会覆盖数据库对象解析到的默认上下文。如果您的代码旨在作为单个脚本运行,请使用此模式。
在下面的视频中,为 查询文件 选择了 public 架构作为默认。 该架构包含 actor 表,而 information_schema 架构不包含该表。 当解析模式为 Playground 时,这两个 SELECT 语句中的数据库对象都会解析到默认架构,因为所有语句都被视为彼此无关。
将解析模式更改为 脚本 后,第二个 SELECT 语句将被视为与 SET search_path TO information_schema 语句相关。 该语句中将不再解析 actor 表。
用户参数
根据数据库供应商不同,问号 ? 在 SQL 语句中会被视为参数。 您可以在 工具 | 数据库 | 查询执行 | 用户参数 设置页面  Ctrl+Alt+S 中指定其他哪些字符及其序列应被视为参数以及适用位置。
SQL 参数的模式通过正则表达式指定。
运行参数化语句
如果您的语句包含参数,PyCharm 会在您执行语句之前提示您指定参数值。
要执行参数化语句,请点击工具栏上的 执行 按钮(
),并在第二列中输入值。 或者,点击 查看形参 按钮(
)打开 形参 对话框。

命名方式
在 PyCharm 中,您可以使用 位置 和 命名 用户参数。 对于位置型用户参数,每次出现都会根据其顺序单独处理。 对于命名用户参数,所有同名的出现都被视为同一参数。
要使用命名参数,请按 Ctrl+Alt+S 打开设置并导航到 。 在 参数模式 窗格中,将 () 添加到您的用户参数模式。 IDE 会将 () 的内容视为参数名,并在您运行脚本时只请求一个值。 否则,如果同一参数在脚本中使用了多次, IDE 会根据其出现顺序请求多个值。
请考虑以下示例:
\?\w+:位置型用户参数模式。?x参数被视为两个不同的用户参数。 将根据参数的顺序请求值。
\?(\w+):命名用户参数模式。 两个?x都被视为同一个用户参数,其中x为参数名。
有关参数模式的更多信息,请参阅 用户参数参考主题。
示例
将数组用作参数
在 PyCharm 中,用值替换参数非常直接。 要使用数组作为值,请在相应的字段中指定您的数组。
在以下示例中, ? 参数可以替换为 206, 'John', 'Smith' 值:

有关参数的更多信息,请参阅数据库文档。
参数模式
如果您的脚本中包含具有特定参数语法的参数,请使用正则表达式指定模式。
对于以下示例,必须在 工具 | 数据库 | 查询执行 | 用户参数 设置页面  Ctrl+Alt+S 中设置 %{2}(\w+_\d+) 模式:

预览表结构
在 IDE 代码编辑器中,您可以使用 快速文档 功能预览 SQL 语句中的表结构。
要在 SQL 语句中预览表结构,请选择该表并按 Ctrl+Q。
出现的 快速文档 弹出窗口包含 CREATE DDL 脚本以及有关该表的其他信息。
有关该功能的更多信息,请参阅 快速文档。

查看已执行语句的历史记录
使用查询历史记录对话框
PyCharm 会存储您在 查询文件 中运行的所有语句的历史记录。
要打开 查询历史记录 对话框,请点击工具栏上的 浏览查询历史记录 按钮(
),或按 Ctrl+Alt+E。
在 查询历史记录 对话框中,您可以执行以下操作:
要筛选信息,请开始输入您的搜索查询。
要将 查询历史记录 对话框中的查询粘贴到 查询文件 中,请在 查询历史记录 对话框的左侧窗格中双击该查询。
要从历史记录中删除一条记录,请选择该记录并按 Delete。

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

