クエリの実行

クエリコンソール

私たちの経験から言って、クエリコンソールは通常の日常的なSQLを記述するのに最適な場所です。 すべてのデータソースには、独自のデフォルトコンソールがあります。 それを開くには、コンテキストメニューに移動し、Open Consoleをクリックしてください。 または、ショートカットF4を使用してください。

ここではSQLを記述して実行し、その結果を得られます! とてもシンプルです。

何らかの理由であるデータソース用に別のコンソールを作成したい場合は、Context menu → New → Console も使用できます。

スキーマスイッチャー

複数のコンソールを作成し、同時に大量のクエリを管理できます。 各コンソールにはデータベース/スキーマスイッチャーが搭載されています。 PostgreSQLをお使いの場合は、ここで検索パスを定義してください。

選択範囲の実行

コードの一部を選択して、選択した箇所のみを実行できます。 選択されたクエリはそのまま実行されますので、ご注意ください。DataGripは選択された文字列をデータベースにただ送信し、結果を取得します。 この機能は、IDEがクエリ内のエラーを誤検知した場合に役立ちます。

実行オプション

DataGripはスマートなクエリ実行オプションをご提供しています。 カーソルがクエリ内にある場合、複数のオプションを使用して実行内容をカスタマイズできます。 意図した動作を定義します。例えば、最小ステートメントを実行する、最大ステートメントを実行する、実行対象を確認する、スクリプト全体を実行するなど。

 

さらに、実行アクションもあります。 動作の変更とショートカットの割り当ては、完全に独立しています。 例えば、スクリプトから正確なクエリを選択せずに、スクリプト全体を実行するアクションを作成できます。

以下で動作をご確認いただけます。

読み取り専用モード

データソースのプロパティでRead-Only(読み取り専用)をオンにできます。 このモードは事実上、同時に2つの読み込み専用モードを有効化します。対応JDBCドライバの読み取り専用モードとIDEレベルの読み取り専用モードです。

JDBCドライバ読み取り専用モードは、MySQL、PostgreSQL、AWS Redshift、H2Derbyでの修正クエリの実行を拒否します。 その他のDBMSでは何もしません。

そのため、IDEレベルの読み取り専用モードを用意しています。 このモードはJDBCレベルの読み取り専用モードと共に有効化されます。 このように、読み取り専用モードではすべてのDDLまたはDMLクエリに下線が引かれます。 このようなクエリを実行すると、警告が表示されます。 ご自身が何を実行しようとしているのか完全に理解している場合は、このバーで実行を押しても構いません。

また、関数やプロシージャのソースコードがインデックス化され、バックグラウンドでコールツリーが構築されるようになりました。 つまり、ある関数が、DDLやDMLステートメントを実行する別の関数を(n回繰り返して)実行する場合にも警告が表示されます。

トランザクション制御

特定のデータソースを処理する際に使用するトランザクション制御の種類を定義できます。 このオプションは、データソースのプロパティで使用できます。 自動モードでは、コミットステートメントを実行するトランザクションをコミットする必要はありませんが、手動モードでは明らかにコミットする必要があります。

式の評価

この機能を使用すると、コンソールにクエリを入力せずにデータを確認できます。 他のIntelliJベースのIDEでは、オブジェクト上でCtrl+Alt+F8を押すとクイック評価が行われます。 DataGripでは、クエリ内のテーブルで同機能を呼び出すと、そのテーブルのデータが表示されます。 カラム名の上でCtrl+Alt+F8を押すと、期待される結果セット内にそのカラムの値が表示されます。 クエリ(またはサブクエリ)のキーワードで同様のクイック評価を呼び出した場合、結果がポップアップ表示されます。 なお、Alt+クリックも同様に機能します。

クエリ実行履歴

各コンソールのツールバーにはボタンがあります。 このボタンを押すと、このデータソースに対して実行されたすべてのクエリ履歴を確認できます。 スピード検索も使用できます!

また、ファイル単位のローカル履歴もご確認ください。

完全なSQLログ

文字通り、IDEからのクエリはすべてテキストファイルに記録されます。 このファイルを開くには、ヘルプ | SQLログを表示を開いてください。

この<0>構造ポップアップ(<1>Ctrl+F12)からすぐにクエリを実行できます。これは、長いスクリプトで一部のクエリを実行する必要がある場合に便利です。

DataGripはストアドプロシージャを実行するためのコードを生成できます。 必要なパラメータの値を入力し、「OK」をクリックします。

ソースコードを開く際に、ツールバーの実行ボタンをクリックして、このプロシージャを実行できることにご注意ください。 または単純に、データベースツリー内のプロシージャのコンテキストメニューから実行…を使用します。

危険なクエリ

DataGripは、DELETEステートメントやUPDATEステートメントが、WHERE句なしで使用されている場合に警告を表示します。

実行計画の表示

ステートメントの実行計画は、クエリで要求されたデータを返すためにデータベースが実行する操作を、視覚的に表現します。 これは、クエリの最適化に役立ちます。

 

グラフィカルに、計画はテーブルまたはダイアグラムで表示されます。

ユーザーパラメータ

別のアプリケーションからSQLクエリを取得する際、それをパラメータ化できます。 DataGripはこの種のクエリの実行をサポートしています。

パラメータのパターン編集用のUIは、設定/環境設定 → データベース → ユーザーパラメータで使用できます。 正規表現がハイライト表示され、これらのパターンが有効なダイアレクトを選択できます。

構造ビュー

各コンソールやSQLファイルでは、そのすべてのステートメントが構造として送信されているポップアップがあります。 この構造ポップアップCtrl+F12)からすぐにクエリを実行できます。これは、長いスクリプトで一部のクエリを実行する必要がある場合に便利です。

クエリ結果

結果セット

DataGripでは、結果セットが変更可能なため、クエリを実行後返ってきたデータを変更できます。 これは、自動コミット、行の追加/削除、テキスト検索、データ間移動など、同じオプションを持つデータエディタと似ています。

結果の比較

2つの結果セットは差分ビューアで比較できます。 DataGripでは差分をハイライト表示し、許容誤差パラメータで比較条件を調整できます。 例えば、データが単一カラムでのみ異なる2行を等しいとみなす場合は、許容誤差フィールドに対応する値を入力してください。 必要に応じて、任意のカラムを比較対象から除外できます。

結果のツールバーでCompareボタンをクリックし、比較したい別の結果セットを選択します。

結果タブに命名可能

結果用の便利な機能、「タブの命名」をご利用ください! クエリの前でコメントを使用するだけでタブの名前を変更できます。

ある特定のコメントをタブ名にしたい場合は、設定の Treat text as title after(次の単語の後に続くテキストをタイトルとして扱う) フィールドを使って接頭語を指定してください。 その後、その接頭語の後に続くテキストのみがタイトルとして使用されます。

ページサイズを簡単に変更可能

結果セットのツールバーから、データベースから取得する行数を定義できます。