DataGrip 2025.2 Help

存储您的查询

本教程描述了在 DataGrip 中存储查询的几种方法。 您可以选择最适合您日常任务的方法。

示例展示了 Sakila PostgreSQL 数据库的 guest.public 模式。 要了解如何在 DataGrip 中创建和运行 Sakila PostgreSQL 数据库,请参阅 在 Docker 容器中运行 PostgreSQL Sakila 数据库 主题。

用于 SELECT 语句的虚拟视图

虚拟视图是一个 IDE 虚拟对象,可让您在 数据库资源管理器 中获得结果集。 有关虚拟视图的更多信息,请参阅 虚拟视图 主题。

例如,以下 选择 语句需要每天针对 Sakila PostgreSQL 数据库的 公开 模式运行,以获取当前活跃客户的列表:

SELECT customer_id, first_name, last_name, store_id, email, address_id, activebool, create_date, last_update, active FROM customer WHERE activebool = TRUE ORDER BY last_name, first_name;

为您的 SELECT 语句创建一个虚拟视图

  1. 右键单击 公开 模式节点并选择 新建 | 虚拟视图

  2. 在打开的 创建 对话框中,在 名称 字段中输入 customers_active

  3. 源文本 字段中粘贴您的 选择 语句。

    使用您的 SELECT 语句创建一个新的虚拟视图
  4. 单击 确定 以创建您的虚拟视图。

DataGrip 创建了一个新的虚拟视图并将其显示在 数据库资源管理器 中。 要打开新的虚拟视图,请双击它。

数据编辑器选项卡中的虚拟视图结果集

实时模板

存储语句的另一种方法是使用动态模板,它允许您将代码块插入到代码编辑器中。

有关动态模板的更多信息,请参阅 相关主题

例如,如果您经常使用以下语句来删除 actor_id 大于 200 的记录:

DELETE FROM guest.public.actor WHERE actor_id > 200;

将语句存储在动态模板中

  1. Ctrl+Alt+S 打开设置,然后选择 编辑器 | 实时模板

  2. 从模板组中展开 SQL

  3. 点击 "添加"按钮 并选择 实时模板

  4. 指定模板将可用的上下文。

    单击消息下方的 定义 并选择 SQL 复选框。

  5. 缩写 字段中,指定将用于扩展模板的字符。 例如: del200

  6. (可选)在 描述 字段中,描述模板以供将来参考。

    例如: Delete all records in the actor table that have an actor_id greater than 200

  7. 模板文本 字段中,指定模板的主体。 例如:

    使用用户参数创建一个新的动态模板
  8. 单击 确定 以应用所有更改并关闭对话框。

  9. 在编辑器中,输入 del200 并按 Tab

使用动态模板,您还可以存储带有 用户参数 的语句。

请参考以下示例:要向 actor 表中添加一条新记录,需要使用 INSERT 语句。 每次都需要手动输入演员的名字和姓氏。

INSERT INTO guest.public.actor (first_name, last_name, last_update) VALUES (?, ?, CURRENT_TIMESTAMP);

为 INSERT 语句创建一个动态模板

  1. Ctrl+Alt+S 打开设置,然后选择 编辑器 | 实时模板

  2. 从模板组中展开 SQL

  3. 点击 "添加"按钮 并选择 实时模板

  4. 指定模板将可用的上下文。

    单击消息下方的 定义 并选择 SQL 复选框。

  5. 缩写 字段中,指定将用于扩展模板的字符。 例如: newact

  6. (可选)在 描述 字段中,描述模板以供将来参考。

    例如: Insert a new actor record with the current date

  7. 模板文本 字段中,指定模板的主体。 例如:

    使用用户参数创建一个新的动态模板
  8. 单击 确定 以应用所有更改并关闭对话框。

  9. 在编辑器中,输入 newact 并按 Tab

    将新的动态模板插入到代码编辑器中
  10. 按下以运行语句。

  11. 在出现的 参数 对话框中,输入值并单击 执行 以运行语句。

    例如,将 '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 文件

  1. 个文件 工具窗口中,单击工具栏中的 将目录附加到项目… 按钮(将目录附加到项目)。

    或者,右键单击 文件 工具窗口区域并选择 将目录附加到项目…

  2. 在文件浏览器中,导航到您想要附加的目录。 在我们的案例中,它是 my_scripts 目录。

  3. 点击 打开

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

    打开附加文件夹中的现有 SQL 文件

您可以将查询存储在单个 SQL 文件中(每个 SQL 方言一个文件)或多个 SQL 文件中。 每次需要某个查询时,您可以通过使用 IDE 搜索功能找到文件并导航其结构。

  • 所有特定 SQL 方言的查询存储在单个 SQL 文件中:每次需要某个查询时,您可以在此文件中导航到该查询。

    每次运行查询时,您需要将该 SQL 文件的数据源切换到所需的数据源。

  • 查询存储在单独的 SQL 文件中:每个文件包含一个查询,并且也附加到一个特定的数据源。

在本教程中,我们将以 my_scripts 目录中的 query_book.sql 文件作为所有查询存储在单个文件中的示例。 对于多个 SQL 文件的情况,示例是 ActiveConnections_postgres.sql query_book 目录中的其他文件,每个文件包含一个查询。

  1. 通过按下 Ctrl+Shift+F 调出 在文件中查找 弹出窗口。

  2. 在对话框中,输入 qubo

  3. 选择 query_book.sql 文件并按下 Enter 在编辑器中打开它。

  4. 在编辑器工具栏的 更改 SQL 方言<data source> 选择器中,选择您要运行查询的数据源和数据库或模式。

  5. 通过按下 Ctrl+F12 调出 结构 弹出窗口。

  6. 在弹出窗口中,确保选中 DDL 语句DML 语句Select 语句 复选框。

  7. 导航到您要运行的查询并单击它。 或者按 Ctrl+F12

  8. 在编辑器中,选择查询并单击工具栏上的 执行图标执行 以运行它。 或者,选择它并按下 Enter

  1. 通过按下 Ctrl+Shift+N 调出 转到文件 弹出窗口。

  2. 在弹出窗口中,在搜索字段中输入 conn

  3. 选择 ActiveConnections_postgres.sql 文件并单击它以在编辑器中打开。 或者按 Enter

  4. 在编辑器中,单击工具栏上的 执行图标执行 以运行查询。 或者按 Enter

    运行配置

    您可以使用 数据库脚本 类型的 运行配置 存储和运行您的查询。

    当从运行配置运行 选择 查询时,结果集将显示在 服务 工具窗口中。

    例如,要获取支付次数比其他人更多的客户,可以使用以下查询:

    -- Most frequent payers SELECT c.customer_id, COUNT(p.payment_id) AS payment_count, c.first_name, c.last_name FROM guest.public.customer c JOIN guest.public.payment p ON c.customer_id = p.customer_id GROUP BY c.customer_id, c.first_name, c.last_name ORDER BY payment_count DESC;

    将查询存储在运行配置中

    1. 通过以下方法之一打开 运行/调试配置 对话框:

      • 从主菜单中选择 运行 | 编辑配置

      • Navigation bar 可见 (查看 | 外观 | 导航栏) 的情况下,从运行/调试配置选择器中选择 编辑配置

      • 请按 Alt+Shift+F10 然后按 0

    2. 运行/调试配置 对话框中,单击 添加新配置 图标(新建配置图标 )并选择 数据库脚本 以创建一个新的运行配置。

        有关配置类型设置的更多信息,请参阅 数据库脚本

      • 名称 中,输入您的新运行配置名称。 例如, most frequent payers

      • 目标数据源/架构 中,选择您要运行查询的模式。

        在本教程中,它是 PostgreSQL 数据源的 guest.public 模式。

      • 执行 中,选择 脚本文本

      • 在文本字段中,输入您的查询。

      • 点击 确定 以保存运行配置。

        将查询存储在运行配置中

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

      运行配置小部件

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

      最后修改日期: 2025年 9月 26日