クエリを保存する
このチュートリアルでは、DataGrip にクエリを保存するいくつかの方法について説明します。 日常のタスクに適した方法を使用できます。
例は、Sakila PostgreSQL データベースの guest.public スキーマについて示されています。 DataGrip で Sakila PostgreSQL データベースを作成して実行する方法については、 Docker コンテナーで PostgreSQL Sakila データベースを実行する トピックを参照してください。
SELECT ステートメントの仮想ビュー
仮想ビューは、 データベースエクスプローラー で結果セットを使用できる IDE 仮想オブジェクトです。 仮想ビューの詳細については、 仮想ビュー のトピックを参照してください。
例:現在アクティブな顧客のリストを取得するには、次の 選択 ステートメントを Sakila PostgreSQL データベースの パブリック スキーマに対して毎日実行する必要があります:
SELECT ステートメントの仮想ビューを作成する
パブリック スキーマノードを右クリックし、 を選択します。
開いた 作成 ダイアログで、 名前 フィールドに
customers_activeと入力します。ソーステキスト フィールドに、
選択ステートメントを貼り付けます。
OK をクリックして仮想ビューを作成します。
DataGrip は新しい仮想ビューを作成し、それを データベースエクスプローラー に表示します。 新しい仮想ビューを開くには、それをダブルクリックします。

ライブテンプレート
ステートメントを保存する別の方法は、コードエディターにコードブロックを挿入できるライブテンプレートを使用することです。
ライブテンプレートの詳細については、 対応するトピックを参照してください。
例: 次のステートメントを定期的に使用して、 actor_id が 200 より大きいレコードを削除する場合:
ライブテンプレートにステートメントを保存する
Ctrl+Alt+S を押して設定を開き、 を選択します。
テンプレートグループから、 SQL を展開します。
をクリックして、 ライブテンプレート を選択します。
テンプレートが使用可能なコンテキストを指定します。
メッセージにある 定義 をクリックし、 SQL チェックボックスを選択します。
略語 フィールドで、テンプレートの展開に使用する文字を指定します。 例:
del200。(オプション) 説明 フィールドに、将来の参照用にテンプレートを記述します。
例:
Delete all records in the actor table that have an actor_id greater than 200。テンプレートテキスト フィールドで、テンプレートの本文を指定します。 例:

OK をクリックしてすべての変更を適用し、ダイアログを閉じます。
エディターで
del200と入力し、 Tab を押します。
ライブテンプレートを使うと、 ユーザーパラメーター付きのステートメントも保存できます。
次の例を考えてみましょう。 actor テーブルに新しいレコードを追加するには、 挿入 ステートメントを使用します。 俳優の姓と名は毎回手動で入力する必要があります。
INSERT ステートメントのライブテンプレートを作成する
Ctrl+Alt+S を押して設定を開き、 を選択します。
テンプレートグループから、 SQL を展開します。
をクリックして、 ライブテンプレート を選択します。
テンプレートが使用可能なコンテキストを指定します。
メッセージにある 定義 をクリックし、 SQL チェックボックスを選択します。
略語 フィールドで、テンプレートの展開に使用する文字を指定します。 例:
newact。(オプション) 説明 フィールドに、将来の参照用にテンプレートを記述します。
例:
Insert a new actor record with the current date。テンプレートテキスト フィールドで、テンプレートの本文を指定します。 例:

OK をクリックしてすべての変更を適用し、ダイアログを閉じます。
エディターで
newactと入力し、 Tab を押します。
押すとステートメントが実行されます。
表示される パラメーター ダイアログで値を入力し、 実行 をクリックしてステートメントを実行します。
例: 最初のパラメーターとして
'Jay'を入力し、2 番目のパラメーターとして'Doe'を入力します。
ステートメントが実行されると、新しいレコードが actor テーブルに表示されます。

SQL ファイル
DataGrip プロジェクトに任意のディレクトリをアタッチし、 ファイル ツールウィンドウからそのディレクトリとそのファイルにアクセスできます。 アタッチされたディレクトリでは、既存の SQL ファイルを開いたり、新しいファイルを作成したりできます。 DataGrip はファイルにインデックスを付け、 IDE の検索機能を使用して ファイルや そのコンテンツの検索が可能になります。
ニーズとワークフローに応じて、すべてのクエリを 1 つの 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';
たとえば、SQL ファイルをすでに保存している query_book ディレクトリがあり、IDE でそのディレクトリとそのファイルにアクセスしたいとします。 そのためには、ディレクトリを DataGrip プロジェクトにアタッチする必要があります。
ディレクトリを添付して SQL ファイルを開く
ファイル ツールウィンドウで、ツールバーの ディレクトリをプロジェクトに追加… ボタン (
) をクリックします。
または、 ファイル ツールウィンドウの領域を右クリックし、 ディレクトリをプロジェクトに追加… を選択します。
ファイルブラウザーで、添付するディレクトリに移動します。 この場合は、 my_scripts ディレクトリです。
開く をクリックしてください。

ディレクトリは ファイル ツールウィンドウで利用可能になります。 SQL ファイルをエディターで開くには、アタッチされたディレクトリノードを展開し、ファイル名をダブルクリックしてください。

ファイルとクエリに移動する
クエリは、単一の SQL ファイル (SQL ダイアレクトごとに 1 つのファイル) または複数の SQL ファイルに保存できます。 特定のクエリが必要になるたびに、IDE 検索機能を使用してファイルを検索し、その構造を移動できます。
特定の SQL ダイアレクトのすべてのクエリを 1 つの SQL ファイルにまとめる: 特定のクエリが必要になるたびに、このファイル内のクエリに移動できます。
クエリを実行するたびに、その SQL ファイルのデータソースを必要なものに切り替える必要があります。
個別の SQL ファイル内のクエリ: 各ファイルには 1 つのクエリが含まれ、特定の 1 つのデータソースにも接続されます。
このチュートリアルでは、すべてのクエリが 1 つのファイルに含まれる例として、 my_scripts ディレクトリの query_book.sql ファイルを検討します。 複数の SQL ファイルの場合、例としては ActiveConnections_postgres.sql と query_book ディレクトリのその他のファイルがあり、各ファイルには 1 つのクエリが含まれます。
Ctrl+Shift+F を押して 複数ファイル内検索 ポップアップウィンドウを呼び出します。
ダイアログに「
qubo」と入力します。query_book.sql ファイルを選択し、 Enter を押してエディターで開きます。
エディターツールバーの SQL ダイアレクトの変更 および <データソース> セレクターで、クエリを実行するデータソースとデータベースまたはスキーマを選択します。
Ctrl+F12 を押して 構造 ポップアップを呼び出します。
ポップアップで、 DDL ステートメント、 DML ステートメント、 ステートメントの選択 のチェックボックスが選択されていることを確認します。
実行するクエリに移動してクリックします。 または、 Ctrl+F12 を押します。
エディターでクエリを選択し、ツールバーの
実行 をクリックして実行します。 または、クエリを選択して Enter を押します。
Ctrl+Shift+N を押して ファイルに移動 ポップアップウィンドウを呼び出します。
ポップアップウィンドウで、検索フィールドに「
conn」と入力します。ActiveConnections_postgres.sql ファイルを選択し、クリックしてエディターで開きます。 または、 Enter を押します。
エディターで、ツールバーの
実行 をクリックしてクエリを実行します。 あるいは、 Enter を押します。
実行構成
データベーススクリプト タイプの 実行構成を使用してクエリを保存および実行できます。
実行構成から 選択 クエリを実行すると、結果セットが サービス ツールウィンドウに表示されます。
例: 他の顧客よりも多くの支払いを行った顧客を取得するには、次のクエリを使用できます。
実行構成にクエリを保存する
以下のいずれかの方法で 実行 / デバッグ構成 ダイアログを開きます。
メインメニューから を選択します。
ナビゲーションバーが表示されている場合( )、実行 / デバッグ構成セレクターから を選択します。
Alt+Shift+F10 を押してから、 0 を押します。
実行 / デバッグ構成 ダイアログで、 新しい構成の追加 アイコン (
) をクリックし、 データベーススクリプト を選択して新しい実行構成を作成します。
構成タイプの設定の詳細については、 データベーススクリプト を参照してください。
名前 に、新しい実行構成名を入力します。 例:
most frequent payers。ターゲットデータソース / スキーマ で、クエリを実行するスキーマを選択します。
このチュートリアルでは、 PostgreSQL データソースの guest.public スキーマです。
実行 では、 スクリプトテキスト を選択します。
テキストフィールドにクエリを入力します。
OK をクリックして、実行構成を保存します。

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

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