运行查询
最后修改时间:2023 年 10 月 23 日启用数据库工具和 SQL 插件
此功能依赖于数据库工具和 SQL 插件,默认情况下,它们在 PyCharm 中捆绑并启用。如果相关功能不可用,请确保您没有禁用该插件。
笔记
数据库工具和 SQL 插件仅在 PyCharm Professional 中可用。
按打开 IDE 设置,然后选择插件。CtrlAlt0S
打开已安装选项卡,找到数据库工具和 SQL插件,然后选中插件名称旁边的复选框。
您可以使用快捷方式、工具栏按钮和图标、上下文菜单以及运行/调试配置来运行代码。您可以从查询控制台、临时文件和用户文件运行查询。
提示
数据库或查询控制台与其他 SQL 文件(例如用户文件和草稿)没有什么不同。唯一的区别是查询控制台已经连接到数据源,因此您可以立即键入并运行代码。您可以像使用终端一样使用查询控制台。输入、按并运行您的代码。CtrlEnter
有关在何处以及如何查看查询结果的更多信息,请参阅查询结果。
运行语句和过程
在查询控制台中运行语句
您可以将查询控制台与您键入和运行代码的终端联系起来。
在 数据库工具窗口(视图 | 工具窗口 | 数据库)中,单击数据源。
按打开查询控制台。有关使用控制台的更多信息,请参阅使用控制台。F4
输入或粘贴您要执行的语句。
单击工具栏上的执行按钮 ( )。或者,按。CtrlEnter
如果有多个语句,请选择是要执行所有语句还是单个语句。建议列表始终包含一个用于运行所有语句的项目。
从打开的文件运行语句
在 PyCharm 中,您可以打开并运行文件。文件大小限制为 20 MB。当您打开大于 20 MB 的文件时,您只能看到该文件的前 2.5 MB。
打开 项目工具窗口(视图 | 工具窗口 | 项目)并双击 SQL 文件。
有关在 PyCharm 中附加目录和文件的更多信息,请参阅用户文件。
单击您要执行的语句。
此外,您还可以选择(突出显示)要执行的代码片段。它可以是一个子查询或一组语句。PyCharm 仅执行选择。
单击工具栏上的执行按钮 ( )。或者,按。CtrlEnter
要自定义查询执行设置,请单击“自定义”链接。或者,通过按打开设置并导航至“工具”|“ 数据库| 查询执行。CtrlAlt0S
(可选)如果 SQL 文件未连接到数据源,请在<会话>列表中选择或创建连接会话。
提示
从<session>列表中,您可以将不同的会话与该文件关联。您还可以通过从文件的上下文菜单中选择切换会话(<当前会话>)来执行此操作。
有关会话的更多信息,请参阅会话。
在“语句”窗口中,按运行选定的语句。您可以在其他条目之间切换以运行另一组语句。您要执行的语句会在查询编辑器中突出显示。Enter
提示
在“语句”窗口中,您可以单击“自定义”来定义是要查看选择器还是始终在插入符号下运行语句。
有关运行脚本文件的另一个示例,请参阅youtube.com 上的以下视频。
运行存储过程
存储过程是一组具有指定名称的 SQL 语句。您可以在 PostgreSQL、Microsoft SQL Server、Oracle 和 MySQL 中执行存储过程。
右键单击要执行的存储函数,然后选择运行函数。
从会话弹出窗口中,选择您要使用的会话。
在“执行例程”窗口中,键入所有必需的参数值,然后单击“确定”。
运行 SELECT 语句并将结果保存到文件中
取消运行语句
要取消正在运行的语句,请单击工具栏上的取消正在运行的语句按钮 ( )。当请求被取消时,装订线上的进度指示器显示红色方块。将显示取消进度条,该进度条阐明了数据源和会话。
PyCharm 显示警告以验证您是否要停用数据源。显示警告是为了确保安全,因为停用对于同时发生的某些进程可能存在潜在危险。因此,如果您单击“取消运行语句”按钮两次,PyCharm 会显示一条警告,您可以在其中终止远程进程或等待更长的时间。
此外,IDE 在空闲取消 10 秒后显示警告。
笔记
如果单击数据库工具窗口工具栏上的 停用按钮 ( ) ,它将停止 PyCharm 中的查询,但查询将继续在数据库中执行。
取消正在运行的语句
单击取消运行语句按钮。
取消连接
您不仅可以中断请求的执行,还可以中断连接的创建。这对于控制台中的第一个查询尤其相关,它也会创建一个连接。
您可以停止创建连接的过程。为此,请在创建连接时单击工具栏上的取消运行语句按钮 ( )。连接将停止,您将看到“连接已取消”消息。
解决模式
为了运行 SQL 脚本、将数据库对象的用法视为链接并为您提供正确的代码完成,PyCharm 必须将代码中的数据库对象解析为特定上下文。默认情况下,IDE 使用以下之一作为起点将数据库对象解析为:<schema>选择器或默认数据库(如果以上均未设置)。
根据您的代码是单个脚本还是具有多个不相关的 SQL 语句,选择以下解析模式之一来正确解析数据库对象:
Playground:查询控制台的默认模式。所有数据库对象都解析为相同的上下文。
如果您的代码是一组未连接的 SQL 语句,并且不打算作为单个脚本运行,请使用此模式。
脚本:本地 SQL 文件的默认模式。SQL
USE
语句(SET search_path TO
对于 PostgreSQL)会覆盖数据库对象解析到的默认上下文。如果您的代码要作为单个脚本运行,请使用此模式。
笔记
默认情况下,<schema> 选择器不可用于本地 SQL 文件。要显示 <schema> 选择器,请将会话附加到 SQL 文件。为此,请单击<会话>按钮 (
<session>
) 并选择会话。或者,在“项目”工具窗口中右键单击该文件 ,然后选择“附加会话”。
在以下视频中,public
选择该架构作为查询控制台的默认架构。架构包含actor
表,而information_schema
架构不包含表。当解析模式为Playground时,数据库对象将解析为两个SELECT
语句中的默认架构,因为所有语句都被视为不相关。
一旦解析模式更改为Script,第二条SELECT
语句将被视为与第一条语句相关SET search_path TO information_schema
。该actor
表不再在该语句中解析。
用户参数
根据数据库供应商的不同,问号?
被视为 SQL 语句中的参数。您可以在“工具”|“工具”中指定哪些其他字符及其序列应被视为参数以及在哪些位置。数据库| 查询执行 | IDE 设置的 用户参数页面。CtrlAlt0S
SQL 参数的模式是使用正则表达式指定的。
运行参数化语句
如果语句中有参数,PyCharm 会在执行语句之前提示您指定参数的值。
要执行参数化语句,请单击工具栏上的“执行”按钮 ( ),然后在第二列中输入值。或者,要打开“参数”对话框,请单击“查看参数”按钮 ( )。
例子
数组作为参数
在 PyCharm 中,用值替换参数非常简单。要使用数组作为值,请在相应字段中指定数组。
在下面的示例中,?
参数可以替换为206, 'John', 'Smith'
值:
INSERT INTO actor (actor_id, first_name, last_name, last_update)
VALUES (?, '01.02.2023 13:34');
有关参数的更多信息,请参阅数据库文档。
参数模式
如果脚本中的参数具有特定参数语法,请使用正则表达式指定模式。
对于以下示例,必须在“工具”|“工具”%{2}(\w+_\d+)
中设置模式。数据库| 查询执行 | IDE 设置的 用户参数页面:CtrlAlt0S
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';
查看执行语句的历史记录
使用“查询历史记录”对话框
PyCharm 存储您在查询控制台中运行的所有语句的历史记录。
要打开“查询历史记录”对话框,请单击“浏览查询历史记录”按钮 ( ),或按。CtrlAlt0E
在“历史查询”对话框中,您可以执行以下操作:
要过滤信息,请开始输入搜索查询。
要将查询从“查询历史记录”对话框粘贴到控制台,请双击“查询历史记录”对话框左窗格中的查询。
要从历史记录中删除一条记录,请选择该记录并按。Delete
查看结果
通常,当您运行查询时,您会收到表格式的结果。PyCharm 在数据编辑器中显示结果。对于每个语句,带有结果的数据编辑器显示在“服务”工具窗口的单独选项卡中。例如,如果您SELECT
在查询控制台中运行三个语句,您将在工具窗口中看到三个选项卡。
有关查看查询结果的更多信息,请参阅查询结果。
感谢您的反馈意见!