DataGrip 2024.2 ヘルプ

クエリを保存する

このチュートリアルでは、クエリを DataGrip に保存するいくつかの方法について説明します。日常のタスクに適した方法を使用できます。

例は、Sakila PostgreSQL データベースの guest.public スキーマについて示されています。DataGrip で Sakila PostgreSQL データベースを作成して実行する方法の詳細については、Docker コンテナーで PostgreSQL Sakila データベースを実行するトピックを参照してください。

SELECT ステートメントの仮想ビュー

仮想ビューは、データベースエクスプローラーで結果セットを使用できるようにする IDE 仮想オブジェクトです。仮想ビューの詳細については、仮想ビューのトピックを参照してください。

例: 現在アクティブな顧客のリストを取得するには、次の SELECT ステートメントを 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 ステートメントを貼り付けます。

    Creating a new virtual view with your SELECT statement
  4. OK をクリックして仮想ビューを作成します。

DataGrip は新しい仮想ビューを作成し、それをデータベースエクスプローラーに表示します。新しい仮想ビューを開くには、それをダブルクリックします。

Virtual view result set in a data editor tab

ライブテンプレート

ステートメントを保存する別の方法は、コードエディターにコードブロックを挿入できるライブテンプレートを使用することです。

ライブテンプレートの詳細については、対応するトピックを参照してください。

例: 次のステートメントを定期的に使用して、actor_id200 より大きいレコードを削除する場合:

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

ライブテンプレートにステートメントを保存する

  1. Ctrl+Alt+S を押して設定を開き、エディター | ライブテンプレートを選択します。

  2. テンプレートグループから、SQL を展開します。

  3. the Add button をクリックし、ライブテンプレートを選択します。

  4. テンプレートが使用可能になるコンテキストを指定します。

    メッセージにある定義をクリックし、SQL チェックボックスを選択します。

  5. 略語フィールドで、テンプレートの展開に使用される文字を指定します。例: del200

  6. (オプション)説明フィールドに、将来の参照用にテンプレートを記述します。

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

  7. テンプレートテキストフィールドで、テンプレートの本文を指定します。例:

    Creating a new live template with user parameters
  8. OK をクリックしてすべての変更を適用し、ダイアログを閉じます。

  9. エディターで del200 と入力し、Tab を押します。

ライブテンプレートを使用すると、ユーザーパラメーターを含むステートメントを保存することもできます。

次の例を考えてみましょう。俳優テーブルに新しいレコードを追加するには、INSERT ステートメントを使用します。俳優の姓と名は毎回手動で入力する必要があります。

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

INSERT ステートメントのライブテンプレートを作成する

  1. Ctrl+Alt+S を押して設定を開き、エディター | ライブテンプレートを選択します。

  2. テンプレートグループから、SQL を展開します。

  3. the Add button をクリックし、ライブテンプレートを選択します。

  4. テンプレートが使用可能になるコンテキストを指定します。

    メッセージにある定義をクリックし、SQL チェックボックスを選択します。

  5. 略語フィールドで、テンプレートの展開に使用される文字を指定します。例: newact

  6. (オプション)説明フィールドに、将来の参照用にテンプレートを記述します。

    例: Insert a new actor record with the current date

  7. テンプレートテキストフィールドで、テンプレートの本文を指定します。例:

    Creating a new live template with user parameters
  8. OK をクリックしてすべての変更を適用し、ダイアログを閉じます。

  9. エディターで newact と入力し、Tab を押します。

    Insert your new live template to the code editor
  10. 押すとステートメントが実行されます。

  11. 表示されるパラメーターダイアログで値を入力し、実行をクリックしてステートメントを実行します。

    例: 最初のパラメーターとして 'Jay' を入力し、2 番目のパラメーターとして 'Doe' を入力します。

    Enter the user parameters to run your statement with

ステートメントが実行されると、新しいレコードが actor テーブルに表示されます。

Enter the user parameters to run your statement with

SQL ファイル

ニーズとワークフローに応じて、すべてのクエリを 1 つの SQL ファイルに保存することも、複数の SQL ファイルを作成して使用することもできます。

このチュートリアルでは、これらすべてのケースを詳しく見ていきます。説明のために、次のクエリセットをファイルの内容として使用します。

  • 1 つの SQL ファイル: my_queries.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; -- Insert a new actor with the current timestamp INSERT INTO guest.public.actor (first_name, last_name, last_update) VALUES (?, ?, CURRENT_TIMESTAMP); -- Delete actors with ID greater than 200 DELETE FROM guest.public.actor WHERE actor_id > 200;
  • 複数の SQL ファイル: :

    SELECT.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;

    other_queries.sql

    -- Insert a new actor with the current timestamp INSERT INTO guest.public.actor (first_name, last_name, last_update) VALUES (?, ?, CURRENT_TIMESTAMP); -- Delete actors with ID greater than 200 DELETE FROM guest.public.actor WHERE actor_id > 200;

SQL ファイルを保存している既存のディレクトリを DataGrip プロジェクトにアタッチし、ファイルツールウィンドウでそのディレクトリにアクセスできます。アタッチされたディレクトリでは、既存の SQL ファイルを開いたり、新しいファイルを作成したりできます。

たとえば、SQL ファイルをすでに保存している query_book ディレクトリがあり、IDE でそのディレクトリとそのファイルにアクセスしたいとします。そのためには、ディレクトリを DataGrip プロジェクトにアタッチする必要があります。

ディレクトリを添付して SQL ファイルを開く

  1. ファイルツールウィンドウで、ツールバーのディレクトリをプロジェクトにアタッチボタン (Attach Directory to Project) をクリックします。

    または、ファイルツールウィンドウの領域を右クリックし、ディレクトリをプロジェクトにアタッチを選択します。

  2. ファイルブラウザーで、添付するディレクトリに移動します。この場合は、query_book ディレクトリです。

  3. オープンをクリックします。

    Attaching the directory with the SQL file to the DataGrip project
  4. ディレクトリは、ファイルツールウィンドウで使用できるようになります。エディターで SQL ファイルを開くには、アタッチされたディレクトリノードを展開し、ファイル名をダブルクリックします。

    Open en existing SQL files in the attached folder
  1. ファイルツールウィンドウで、ツールバーのディレクトリをプロジェクトにアタッチボタン (Attach Directory to Project) をクリックします。

    または、ファイルツールウィンドウの領域を右クリックし、ディレクトリをプロジェクトにアタッチを選択します。

  2. ファイルブラウザーで、添付するディレクトリに移動します。この場合は、query_book ディレクトリです。

  3. オープンをクリックします。

    Attaching the directory with the SQL file to the DataGrip project
  4. ディレクトリは、ファイルツールウィンドウで使用できるようになります。エディターで SQL ファイルを開くには、アタッチされたディレクトリノードを展開し、ファイル名をダブルクリックします。

    Open en existing SQL files in the attached folder

    実行構成

    データベーススクリプトタイプの実行構成を使用してクエリを保存および実行できます。

    実行構成から SELECT クエリを実行すると、結果セットがサービスツールウィンドウに表示されます。

    例: 他の顧客よりも多くの支払いを行った顧客を取得するには、次のクエリを使用できます。

    -- 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. 以下のいずれかの方法で実行 / デバッグ構成ダイアログを開きます。

      • メインメニューから実行 | 実行構成の編集を選択します。

      • ナビゲーションバーが表示された状態(表示 | 外観 | ナビゲーションバー)で、実行 / デバッグ構成セレクターから実行構成の編集を選択します。

      • Alt+Shift+F10 を押してから、0 を押します。

    2. 実行 / デバッグ構成ダイアログで、新規構成の追加アイコン (the Add New Configuration icon) をクリックし、データベーススクリプトを選択して新しい実行構成を作成します。

        構成タイプの設定の詳細については、データベーススクリプトを参照してください。

      • 名前に、新しい実行構成名を入力します。例: most frequent payers

      • ターゲットデータソース / スキーマで、クエリを実行するスキーマを選択します。

        このチュートリアルでは、PostgreSQL データソースの guest.public スキーマです。

      • 実行では、スクリプトテキストを選択します。

      • テキストフィールドにクエリを入力します。

      • OK をクリックして、実行構成を保存します。

        Storing a query in a run configuration

      新しい実行構成を実行するには、タイトルバーの実行ウィジェットで the Run 'run_configuration_name' icon 実行 '<run_configuration_name>' をクリックします。

      Storing a query in a run configuration

      実行構成の詳細については、実行 / デバッグ構成の使用を参照してください。

      関連ページ:

      Docker コンテナーで PostgreSQL Sakila データベースを実行する

      Docker プラグインをインストールするこの機能は、インストールして有効にする必要がある Docker プラグインに依存しています。を押して設定を開き、を選択します。マーケットプレースタブを開き、Docker プラグインを見つけて、インストールをクリックします (プロンプトが表示されたら、IDE を再起動します)。ステップ 1. リポジトリからファイルを複製する:例として、次の 2 つのリポジトリを使用します。Sakila ダンプファイル(https://github.com/DataGrip/d...

      仮想ビュー

      定期的に実行する特定の SQL ステートメントの結果セットを監視する必要がある場合は、仮想ビューを使用します。仮想ビューは、データベースエクスプローラーで結果セットを利用できるようにする IDE 仮想オブジェクトです。仮想ビューはデータベースコードで定義されておらず、そのデータはデータベースに保存されません。仮想ビューの場合、クエリの他に、MySQL の場合は、Microsoft SQL Server の場合はなどのステートメントも使用できます。例: PostgreSQL データベースの現在のデ...

      ライブテンプレート

      ライブテンプレートを使用して、ステートメントやデータベースオブジェクトの定義などの一般的な構成をコードに挿入します。次のビデオは、ライブテンプレートの使用方法を示しています。コードスニペットを展開するには、対応するテンプレートの省略形を入力してを押します。を押し続けると、テンプレート内の 1 つの変数から次の変数に移動します。を押して、前の変数に移動します。ライブテンプレートの種類:次のタイプのライブテンプレートが区別されます。シンプルなテンプレートには固定プレーンテキストのみが含まれて

      クエリを実行する

      ショートカット、ツールバーボタンとアイコン、コンテキストメニュー、実行 / デバッグ構成を使用して、コードを実行できます。クエリコンソール、スクラッチファイル、ユーザーファイルからクエリを実行できます。クエリ結果を表示する場所と方法の詳細については、「照会結果」を参照してください。次のビデオは、DataGrip でクエリを実行する方法を示しています。ステートメントとプロシージャーを実行する:クエリコンソールでステートメントを実行するコードを入力して実行するターミナルに関しては、クエリコンソール...

      バージョン管理

      DB フロントエンド DataGrip の使い方や高等テクニック満載の JetBrains 日本語公式ヘルプ。最新の英語版ヘルプ内容が随時反映されます。

      実行 / デバッグ構成の使用

      DataGrip は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行構成には次の 2 つのタイプがあります。一時的 — コンテキストメニューからを選択するたびに作成されます。コンテキストメニューを呼び出すには、オブジェクトまたは領域を右クリックします。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的...