DataGrip の新機能

DataGrip 2018.3の新機能

データベース・オブジェクト

Cassandraデータベース

まず第一に、新しいデータベースが私たちの家族に加わりました。徐々にNoSQLを手にしています。2018.2.2(英語)Clickhouse サポートを追加した後、Cassandraのサポートが追加されました。

クエリの作成、データの観察、スクリプトの生成 - DataGripについて好きなことをすべて実行してください!

選択したオブジェクトのSQLファイルを生成する

現在、SQL Generator(Ctrl+Alt+G)を使用してオブジェクトからDDLを取得する場合、これらのオブジェクトのSQLファイルを生成することもできます。これを行うには、左ペインの保存(英語)ボタンをクリックします。ご覧のとおり、出力用に2つのレイアウトが作成されています。実装したいアイデアがあれば、私たちと共有してください。ここでどのような設定をしたいか教えてください。

レイアウト ドロップダウンの右にある編集 ボタンをクリックして、それらのいずれかを編集できます。またはあなた自身を作成してください。これらのレイアウトは単なるgroovyスクリプトです。

PostgreSQLの拡張機能

DataGripはPostgreSQLの拡張機能をサポートするようになりました。

データソースのクイックドキュメント

データソース(Ctrl+Q)のクイックドキュメントに、異なるオブジェクトの数を含む統計情報が表示されるようになりました。

コード補完

自動エイリアス

新しい設定を使用して、テーブル名を補完するときにエイリアス自動的に追加することができます。あらかじめ生成されたエイリアスがニーズに合わない場合は、特定のテーブル用にカスタムエイリアスを自由に作成してください。

実際のエイリアスは次のとおりです。

GROUP BY の非集計フィールド

GROUP BY ステートメントを使用すると、DataGripは非集約フィールドのリストを提供します。

SELECT の全カラム・リスト

すべての列のリストは、SELECTキーワードの後に補完されます。また、MERGE およびINSERT INTOテーブル変数でも機能します。

後置補完

また、他のIntelliJベースのIDEを使用している場合は、後置補完を使い慣れているかもしれません。

それらのすべてがどのように機能するかについてのムービーがここにあります:

名前付きパラメータ

ストアドプロシージャの名前付きパラメータの場合、補完がうまく機能するようになりました。

あいまいな名前のコンテキスト

あいまいな名前の場合、DataGripはあなたにコンテキストを表示します。

JOIN のオペランド順序を反転

新しい設定は自動生成された ON 句のオペランド順序を反転すると呼ばれます。

オフに設定すると、FROM テーブルがJOIN 条件の最初になります。

それがオンの場合、その逆:

リファクタリング

エイリアスを導入する

エイリアスを導入する 最も重要なSQLリファクタリングの1つが、最終的にここにあります。あなたのストップウォッチを準備し、これがあなたを救う時間を見てください!

サブクエリの抽出

- CTEのために提案された名前が競合につながることはありません:DBE-6496(英語)
- 文が別の式でラップされている場合、文脈は適切に定義されます:DBE-6503(英語)DBE-6517(英語)
- DataGripは、それをサポートしていないダイアレクトのas-expressionの列エイリアスを抽出すると、CTEを抽出することを推奨しません。DBE-6490(英語)
- このリファクタリングはMySQLで有効です.CTEはMySQL 8以降サポートされています
- このリファクタリングは深いサブクエリで正常に機能します。DBE-7332(英語)DBE-7333(英語)

コード・インサイト

安全でないステートメント

WHERE 節なしでDELETEまたはUPDATE ステートメントを使用すると、DataGripは警告を表示します。

これを実行している場合は、警告通知が表示されます。

到達不能コード

もう一つの小さな改善点は、到達不能コードと呼ばれる新しいインスペクションです。

未使用のサブクエリ

新しいインスペクション、未使用のサブクエリ項目を追加しました。コードをもっときれいにできます。

コード生成

ライブテンプレート用のダイアレクト

今すぐあなたはライブ・テンプレートのダイアレクトを選ぶことができます。ライブテンプレートに対してダイアレクトが選択されると、そのダイアレクトは指定されたダイアレクトのみで動作します。

このオプションを使用すると、同じ略語に対してさまざまなダイアレクトベースの実装を作成できます。

最初のn行を取得するためのテンプレートを作成したいとします。SQL Server PostgreSQLでは、このクエリの構文が異なります。ライブテンプレートが異なるグループに属している場合は、同じ略称を使用できます。2つの新しいグループSQL ServerPostgreSQLを作成します。各グループで、適切な構文で対応するライブテンプレートを作成します。

テンプレートの正しいダイアレクトを選ぶことを忘れないでください。彼らは必要な状況においてのみ働くでしょう。

SELECTのCREATE TABLE定義

SELECT クエリからCREATE TABLE 定義を追加できるようになりました: その前にINSERT 文を書いて、 Alt+Enter →テーブル定義の登録を押してください

列名のヒント

INSライブテンプレートを使用すると列名のヒントが自動的に表示される

接続

シングル接続モード

以前は、それぞれの新しいクエリーコンソールは新しい接続を意味していました。新しいバージョンでは、データソースの接続を1つだけ使用し、すべてのコンソールで同じ接続を使用することができます。実際には、データベースツリー内の一時オブジェクトを表示したり、別のコンソールで同じトランザクションを使用したりすることができます。これは、DataGripで完全な接続管理を作成するための最初のステップです。それをオンにするには、データソースのプロパティー→オプション→ シングル接続モードに移動します。


自動再接続

また、待望(英語)の自動再接続機能が追加されたので、タイムアウト後の切断はもう必要ありません。

検索とナビゲーション

新しいどこでも検索

IntelliJ Platformには、プロジェクトとIDEをナビゲートする新しい方法が追加されました。これは、どこでも検索の再編集ダイアログです。実際には、どこでも検索アクションの検索テーブル/ビュー/プロシージャ/ファイルに移動シンボルに移動の他のナビゲーションダイアログもすべて組み込まれています。以前のように、これらのナビゲーションダイアログには、それぞれ独自のキーボードショートカットからアクセスできます。タブを切り替えるには、タブを使用します。

複数行コード検索

これで、パス内検索 / パスを置換ダイアログで複数行のフラグメントの検索/置換が可能になりました。スクリプトやソースコードでクエリを見つけるのが簡単になりました。

複数行TODOコメント

IDEは複数のTODOコメントをサポートするようになりました。最初のすべてのTODOコメント行がエディターで強調表示され、TODOツールウィンドウにリストされます。複数行のTODOコメントの2行目からインデントを追加すると、IDEは通常のコメントと区別します。

ユーザー・インターフェース

高コントラスト配色

すべてのIDEにおいて、真新しいハイコントラスト方式を展開しています。オンにするには、Ctrl+`を押してルックアンドフィールに移動し、ハイ・コントラストを選択します。

色設定

また、データソースの色をプロパティーダイアログに定義する機能も追加しました。

ページサイズ設定のUIの改善

また、ページサイズのUIを少し修正しました。テーブルや結果からすべての行を表示する簡単な方法があります。

その他の変更点

  • コード補完:
    • Window 関数
    • SUM() および AVG() の数値フィールド
    • FILTER(WHERE ...)句
    • SQLiteのフィールド型
    • 括弧内の項目
    • テーブルの値型
  • drop cascade 構文を使用するオプションを使用してオブジェクトをドロップします。
  • SQLフォーマッターに大量の修正が行われました。ケースがまだカバーされていない場合は、問題を作成してください(英語)
  • 式/宣言リストはエディターで折りたたむことができます(英語)
  • タブを選択するためのショートカットを割り当てる機能: IDEA-68324(英語)
  • PostgreSQL 11のストアドプロシージャのサポート: DBE-6863(英語)
  • SQLiteにおけるベクトル値更新のサポートDBE-4449(英語)
  • JOINに条件がない場合、このエラーが強調表示されます: DBE-6759(英語)
  • '@'記号はスペルチェッカーを壊さず、したがって変数名で動作します: DBE-2250(英語)
  • JSON Groovy Extractorは大きな数字で問題なく動作します: DBE-7019(英語)
  • 行数は、列がソートされている場合に機能します: DBE-2444(英語)
  • 再検索されたデータエディターで正しい検索パスが設定されます: DBE-7044(英語)
  • クエリプランビジュアライザーはRedshiftで動作します: DBE-7129(英語)
  • より良いエイリアスSQL Serverの一時テーブルの提案: DBE-5981(英語)
  • 返されたテーブルの列はコード内で解決されます: DBE-7176(英語)
  • MySQL 5.7の同期中にそれ以上の例外はありません: DBE-7234(英語)