存储您的查询
本教程描述了在 DataGrip 中存储查询的几种方法。 您可以选择最适合您日常任务的方法。
示例展示了 Sakila PostgreSQL 数据库的 guest.public 模式。 要了解如何在 DataGrip 中创建和运行 Sakila PostgreSQL 数据库,请参阅 在 Docker 容器中运行 PostgreSQL Sakila 数据库 主题。
用于 SELECT 语句的虚拟视图
虚拟视图是一个 IDE 虚拟对象,可让您在 数据库资源管理器 中获得结果集。 有关虚拟视图的更多信息,请参阅 虚拟视图 主题。
例如,以下 选择 语句需要每天针对 Sakila PostgreSQL 数据库的 公开 模式运行,以获取当前活跃客户的列表:
为您的 SELECT 语句创建一个虚拟视图
右键单击 公开 模式节点并选择 。
在打开的 创建 对话框中,在 名称 字段中输入
customers_active。在 源文本 字段中粘贴您的
选择语句。
单击 确定 以创建您的虚拟视图。
DataGrip 创建了一个新的虚拟视图并将其显示在 数据库资源管理器 中。 要打开新的虚拟视图,请双击它。

实时模板
存储语句的另一种方法是使用动态模板,它允许您将代码块插入到代码编辑器中。
有关动态模板的更多信息,请参阅 相关主题。
例如,如果您经常使用以下语句来删除 actor_id 大于 200 的记录:
将语句存储在动态模板中
使用动态模板,您还可以存储带有 用户参数 的语句。
请参考以下示例:要向 actor 表中添加一条新记录,需要使用 INSERT 语句。 每次都需要手动输入演员的名字和姓氏。
为 INSERT 语句创建一个动态模板
按 Ctrl+Alt+S 打开设置,然后选择 。
从模板组中展开 SQL。
点击
并选择 实时模板。
指定模板将可用的上下文。
单击消息下方的 定义 并选择 SQL 复选框。
在 缩写 字段中,指定将用于扩展模板的字符。 例如:
newact。(可选)在 描述 字段中,描述模板以供将来参考。
例如:
Insert a new actor record with the current date。在 模板文本 字段中,指定模板的主体。 例如:

单击 确定 以应用所有更改并关闭对话框。
在编辑器中,输入
newact并按 Tab。
按下以运行语句。
在出现的 参数 对话框中,输入值并单击 执行 以运行语句。
例如,将
'Jay'作为第一个参数输入,将'Doe'作为第二个参数输入。
语句执行后,新记录将出现在 actor 表中。

SQL 文件
您可以将任何目录附加到 DataGrip 项目,并在 个文件 工具窗口中访问该目录及其文件。 在附加的目录中,您可以打开现有的 SQL 文件,也可以创建新的文件。 DataGrip 将对文件进行索引,提供使用 IDE 的搜索功能 搜索 这些文件 和 其内容 的选项。
根据您的需求和工作流程,您可以将所有查询存储在单个 SQL 文件中,也可以为其创建和使用多个 SQL 文件。
在本教程中,我们将了解如何将目录附加到 DataGrip 项目,以及如何从这些目录中搜索文件并导航这些文件的结构。 为了说明,我们将使用以下查询集作为文件内容:
单个 SQL 文件: query_book.sql
-- Retrieve all actors SELECT actor_id, first_name, last_name, last_update FROM actor; -- Find the number of films each actor has appeared in SELECT a.actor_id, a.first_name, a.last_name, COUNT(fa.film_id) AS film_count FROM actor a JOIN film_actor fa ON a.actor_id = fa.actor_id GROUP BY a.actor_id, a.first_name, a.last_name ORDER BY film_count DESC; -- List all movies by category SELECT c.name AS category, f.title AS film FROM film_category fc JOIN film f ON fc.film_id = f.film_id JOIN category c ON fc.category_id = c.category_id ORDER BY c.name, f.title; -- PostgreSQL -- Delete actors with ID greater than 200 DELETE FROM guest.public.actor WHERE actor_id > 200; -- MySQL -- Delete actors with ID greater than 200 DELETE FROM sakila.actor WHERE actor_id > 200; -- PostgreSQL -- Insert a new actor with the current timestamp INSERT INTO guest.public.actor (first_name, last_name, last_update) VALUES (?, ?, CURRENT_TIMESTAMP); -- MySQL -- Insert a new actor with the current timestamp INSERT INTO sakila.actor (first_name, last_name, last_update) VALUES (?, ?, CURRENT_TIMESTAMP);多个 SQL 文件: ActiveConnections_postgres.sql 和其他
SELECT datname AS database, usename AS username, pid AS process_id, client_addr AS client_address, client_hostname AS client_hostname, client_port AS client_port, application_name, state, backend_start, xact_start, query_start, state_change, wait_event, query FROM pg_catalog.pg_stat_activity WHERE datname = 'guest';
例如,您有一个 query_book 目录,您已经在其中存储了 SQL 文件,并且希望在 IDE 中访问该目录及其文件。 为此,您需要将目录附加到 DataGrip 项目。
附加您的目录并打开 SQL 文件
在 个文件 工具窗口中,单击工具栏中的 将目录附加到项目… 按钮(
)。
或者,右键单击 文件 工具窗口区域并选择 将目录附加到项目…。
在文件浏览器中,导航到您想要附加的目录。 在我们的案例中,它是 my_scripts 目录。
点击 打开。

该目录将在 个文件 工具窗口中可用。 要在编辑器中打开您的 SQL 文件,请展开附加的目录节点并双击文件名。

导航到文件和查询
您可以将查询存储在单个 SQL 文件中(每个 SQL 方言一个文件)或多个 SQL 文件中。 每次需要某个查询时,您可以通过使用 IDE 搜索功能找到文件并导航其结构。
所有特定 SQL 方言的查询存储在单个 SQL 文件中:每次需要某个查询时,您可以在此文件中导航到该查询。
每次运行查询时,您需要将该 SQL 文件的数据源切换到所需的数据源。
查询存储在单独的 SQL 文件中:每个文件包含一个查询,并且也附加到一个特定的数据源。
在本教程中,我们将以 my_scripts 目录中的 query_book.sql 文件作为所有查询存储在单个文件中的示例。 对于多个 SQL 文件的情况,示例是 ActiveConnections_postgres.sql 和 query_book 目录中的其他文件,每个文件包含一个查询。
通过按下 Ctrl+Shift+F 调出 在文件中查找 弹出窗口。
在对话框中,输入
qubo。选择 query_book.sql 文件并按下 Enter 在编辑器中打开它。
在编辑器工具栏的 更改 SQL 方言 和 <data source> 选择器中,选择您要运行查询的数据源和数据库或模式。
通过按下 Ctrl+F12 调出 结构 弹出窗口。
在弹出窗口中,确保选中 DDL 语句、 DML 语句 和 Select 语句 复选框。
导航到您要运行的查询并单击它。 或者按 Ctrl+F12。
在编辑器中,选择查询并单击工具栏上的
执行 以运行它。 或者,选择它并按下 Enter。
通过按下 Ctrl+Shift+N 调出 转到文件 弹出窗口。
在弹出窗口中,在搜索字段中输入
conn。选择 ActiveConnections_postgres.sql 文件并单击它以在编辑器中打开。 或者按 Enter。
在编辑器中,单击工具栏上的
执行 以运行查询。 或者按 Enter。
运行配置
您可以使用 数据库脚本 类型的 运行配置 存储和运行您的查询。
当从运行配置运行 选择 查询时,结果集将显示在 服务 工具窗口中。
例如,要获取支付次数比其他人更多的客户,可以使用以下查询:
将查询存储在运行配置中
通过以下方法之一打开 运行/调试配置 对话框:
从主菜单中选择 。
在 Navigation bar 可见 () 的情况下,从运行/调试配置选择器中选择 。
请按 Alt+Shift+F10 然后按 0。
在 运行/调试配置 对话框中,单击 添加新配置 图标(
)并选择 数据库脚本 以创建一个新的运行配置。
有关配置类型设置的更多信息,请参阅 数据库脚本。
在 名称 中,输入您的新运行配置名称。 例如,
most frequent payers。在 目标数据源/架构 中,选择您要运行查询的模式。
在本教程中,它是 PostgreSQL 数据源的 guest.public 模式。
在 执行 中,选择 脚本文本。
在文本字段中,输入您的查询。
点击 确定 以保存运行配置。

要运行新的运行配置,请单击标题栏运行小部件中的 运行“<run_configuration_name>”。

有关运行配置的更多信息,请参阅 运行/调试配置。
