このページはCalíope 1.7を紹介しています。私がいま作っているバージョンです。1.6は、Mac、iPad、iPhone、Apple Watch、Apple TV、Apple Vision Pro向けにApp Storeで公開中です。それぞれの機能がどのバージョンで入ったかは変更履歴に書いてあります。

すべてのトピックに「Calíopeで開く」ボタンを追加します。アプリがインストールされている場合にのみ機能します。

スキーマツリー

データベースの探索

サイドバーのパネルで、サーバの構造をブラウズします。

場所: サイドバー › スキーマツリー

SQLエディタの右側にあるスキーマパネルには、スキーマツリーが表示されます。表示と非表示は、エディタのツールバーにあるサイドバーボタンで切り替えます。データベースの横の矢印をクリックすると展開され、そのテーブルが表示されます。Calíopeはサーバ上のすべてのデータベースを、システムのもの(information_schema、performance_schema、mysql、sys)も含めて一覧表示します。CalíopeはDBAのためのアプリで、これらは正当なイントロスペクションの情報源だからです。

再読み込み。パネルのヘッダには更新ボタンがありません。再読み込みはコンテキストメニューにあり、データベースでは「テーブルを更新」、ツリー全体では「データベースリストを更新」を使います。iPadでは、ツリーを下に引っ張ってすべてを再読み込みすることもできます。

キーワード: データベース、テーブル、スキーマ、サイドバー、ツリー、スキーマツリー、information_schema、performance_schema、MYSQL、SYS

テーブルのプレビュー

選択したテーブルの簡単なSELECTを開きます。

場所: サイドバー › ツリーのテーブル

スキーマツリーでテーブル名をクリックします。CalíopeはSELECT * FROM `db`.`table` LIMIT 50を自動的に生成し、SQLエディタのアクティブなタブに読み込みます(アクティブなタブがなければ新しいタブを開きます)。

キーワード: プレビュー、SELECT、クイックSELECT、テーブルを表示、テーブルのデータ

スキーマツリーでテーブルを検索

ワークスペースのサイドバーのパネルで、テーブルを名前で絞り込みます。

場所: サイドバー › スキーマツリー › 検索

スキーマツリーのパネルには、ヘッダにフィルタ欄があります。スキーマを表示するどのツールでも同じです。名前の一部を入力すると一覧が絞り込まれます。フィルタはデータベース名とオブジェクト名に同時に一致し、データベース名が一致すれば、そのオブジェクトがすべて表示されます。

フィルタは最後のキー入力から少し待ってから適用されるので、続けて入力してもキーを押すたびに一覧が並べ替わることはありません。消去すると、絞り込む前に展開していたデータベースが元に戻ります。

各データベースは最初に展開したときに問い合わせるので、まだ取得していないものはフィルタでは見つかりません。未探索のデータベースが残っているときは、フッタにその数が表示され、接続に負荷をかけすぎないよう順番に読み込む「すべてを検索」ボタンが出ます。

macOS:欄はパネルの上部にあります。Escapeで消去します。
iPad:欄はいつも同じ場所に表示され、下に引っ張るとツリーを再読み込みします。

キーワード: 検索、テーブルを絞り込む、テーブルを検索、ツリー、フィルタ、サイドバー、虫眼鏡

スキーマツリーはどのツールでも同じ

スキーマを表示するすべてのツールで、絞り込み、必要なときの読み込み、コンテキストメニューが同じです。

場所: サイドバー › スキーマツリー

Calíopeは同じツリーを描きます。データベースとオブジェクトのツリーが必要なすべてのツール、つまり「SQLエディタ」「バックアップ」「データ移行」「テーブルメンテナンス」「一括検索」「クエリービルダー」で同じものです。似ているだけではありません。同じコンポーネントなので、あるツールで覚えたことはどこでも通用します。

いつも使えるもの

- 名前での絞り込み(パネルのヘッダ)。データベース名とオブジェクト名に同時に一致し、データベース名が一致すれば、そのオブジェクトがすべて表示されます。最後のキー入力から少し待ってから適用され、消去すると展開していたデータベースが元に戻ります。
- 未探索のデータベースの通知。各データベースは最初に展開したときに問い合わせるので、まだ取得していないものはフィルタでは見つかりません。そうなったときは、足りないデータベースの数がフッタに表示され、それを読み込む「すべてを検索」ボタンが出ます。
- コンテキストメニュー。名前のコピー、完全修飾名のコピー、再読み込みがあります。ツールごとに独自の項目が加わり、たとえばSQLエディタはSELECT * FROM、データの読み込み、WHEREビルダーを加えます。

ツールごとに変わるもの

- 何を選べるか。SQLエディタとクエリービルダーでは、オブジェクトをタップして使います。バックアップ、移行、メンテナンス、一括検索はチェックボックスを使います。データベースのチェックボックスはその下をすべて選択または解除し、その右に、全体のうちいくつ選択されているかが表示されます。一括検索とクエリービルダーはヘッダで選んだひとつのデータベースの中で動くので、ツリーにはデータベースのノードがなく、そのオブジェクトが直接並びます。
- 何が表示されるか。メンテナンスと一括検索はテーブルだけを表示し(REPAIRはビューには効かず、ビューは置換の対象になりません)、SQLエディタはテーブルとビューを、バックアップと移行は5種類すべてをセクションに分けて表示します。
- いつ読み込むか。バックアップは開いたときにカタログ全体を取得します。何かに触れる前に、数と推定サイズが必要だからです。ほかのツールは、データベースを展開するたびにそれを読み込みます。

キーワード: ツリー、スキーマ、フィルタ、検索、コンポーネント、ツール、選択、チェックボックス

ツリーのデータベースのコンテキストメニュー

スキーマツリーから、データベースに対するクイックアクションを使います。

場所: スキーマツリー › 右クリック › データベース

スキーマツリーのデータベース名を右クリック(macOS)または長押し(iPad)すると、次の項目のあるコンテキストメニューが開きます。

- 「使用中のデータベースに設定」:セッションのコンテキストをこのデータベースに切り替えます(USE db_nameと同じです)。
- 「テーブルを更新」:このデータベースのテーブル一覧をサーバから読み直します。
- 「データベースリストを更新」:ツリーのすべてのデータベースを読み直します。
- 「名前をコピー」:名前をクリップボードにコピーします。

iPad:パネルを下に引っ張る(引っ張って更新)と、データベースの一覧全体が更新されます。

Oracle

Oracleでは、ツリーの各項目はスキーマで、「使用中のデータベースに設定」はUSEを実行しません(Oracleにはありません)。エディタは修飾されていない名前を、ALTER SESSION SET CURRENT_SCHEMAのように、そのスキーマで解決します。

キーワード: コンテキストメニュー、データベース、データベースを使用、テーブルを作成、更新、名前をコピー、USE、引っ張って更新

ツリーのテーブルのコンテキストメニュー

スキーマツリーから、テーブルに対するクイックアクションを使います。

場所: スキーマツリー › 右クリック › テーブル

スキーマツリーのテーブル名を右クリック(macOS)または長押し(iPad)すると、次の項目のあるコンテキストメニューが開きます。

- 「SELECT * FROM table」:最初の50行を取得するクエリーを、セッションのエンジンの構文で(MySQLとClickHouseではLIMIT 50、SQL ServerではTOP (50))生成し、SQLエディタに読み込みます。
- 「テーブルを更新」:このテーブルを含むデータベースのテーブル一覧を読み直します。
- 「テーブル名をコピー」:テーブル名だけをクリップボードにコピーします。
- 「完全な名前をコピー」:完全な参照を、エンジンが求めるとおりに引用符で囲んでクリップボードにコピーします。MySQLとClickHouseでは`db`.`table`、SQL Serverでは[db].[schema].[table]です。
- 「データを読み込む…」:読み込みウィザードを開き、CSV、JSON、Excel (.xlsx) のファイルのデータを、このテーブルに直接読み込みます。
- 「WHEREを作成…」:WHEREビルダーを開き、SQLを書かずに、このテーブルの視覚的なフィルタを作成します。

キーワード: コンテキストメニュー、テーブル、データを表示、SELECT、名前をコピー、データを読み込む、WHEREビルダー、WHEREを作成、更新

WHEREビルダー

SQLを書かずに、WHEREのフィルタを視覚的に組み立てます。

場所: スキーマツリー › 右クリック › WHEREを作成…

「WHEREビルダー」を使うと、SQLを手で書かずにテーブルのフィルタ条件を組み立てられます。

起動の仕方:スキーマツリーで任意のテーブルのコンテキストメニューを開き(macOSでは右クリック、iPadでは長押し)、「WHEREを作成…」を選びます。

ビルダーの使い方:
1. ドロップダウンから列を選びます。
2. 演算子を選びます:=、!=、>、<、>=、<=、LIKE、NOT LIKE、IS NULL、IS NOT NULL、IN、NOT IN、BETWEEN。
3. 値を入力します(BETWEENなら両方の値)。
4. 「条件を追加」を押すと、ANDかORで結んだ条件をもう1つ追加できます。

使える操作:
- 「WHEREをコピー」 — WHERE句だけをクリップボードにコピーし、エディタに貼り付けられるようにします。
- 「SELECTを実行」 — SELECT * FROM table WHERE …を生成し、新しいSQLエディタのタブで実行します。

条件を追加するにつれて、パネルにSQLのプレビューがその場で表示されます。

キーワード: WHERE、ビルダー、フィルタ、条件、LIKE、BETWEEN、IN、IS NULL、SQLなし、ビジュアルフィルタ

DDL変更の履歴

Calíopeから実行したスキーマの変更(CREATE、ALTER、DROP)をすべて自動で記録します。

場所: SQLエディタ › DDL履歴

DDL履歴は、SQLエディタから実行して成功したデータ定義文をすべて自動で記録します:CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE VIEW、DROP INDEXなど。

一般的なクエリーログと違い、DDL履歴は構造の変更の意味を記録したもので、データベースのスキーマの変更の監査や追跡に役立ちます。

開き方:
「SQLエディタ」で、「スキーマ」パネルのヘッダにある「DDL履歴」ボタン(チェックマーク付きの時計のアイコン)をクリックします。ビューアがワークスペースの上にシートとして開きます。

機能:
- 検索 — SQL文の中のテキストや接続名で絞り込みます。
- SQL文をコピー — 項目の右にあるコピーボタンをクリックすると、クリップボードにコピーされます。
- 更新 — 一覧を読み込み直します。
- 履歴を消去 — 上部のバーにあるゴミ箱のボタンで、すべての項目を削除します。削除する前に確認のダイアログが表示されます。
- 書き出す — iPad、iPhone、Apple Vision Proでは、絞り込んだ一覧をタブ区切り(TSV)のファイルとして保存します。

項目ごとに記録される情報:
- 実行した日時。
- 接続名(サーバのプロファイル)。
- DDL文の全文。

DDL履歴は、クエリーログと並んでSQLite3にローカルに保存されます。書き込まれるのは、設定の「成功したクエリーのログを有効にする」がオンのあいだだけです。

macOS、iPad、iPhone、Apple Vision Proで使えます。

キーワード: DDL、監査、履歴、CREATE TABLE、ALTER TABLE、DROP、スキーマ、変更、監査ログ、追跡、SQLite、消去