SQL-Bless

Go Test License Go Reference GitHub

<English> / <Japanese>

image

SQL-Bless は、SQL*Plus に着想を得た、複数のデータベースエンジンに対応するコマンドライン用 SQL クライアントです。

SQL-Bless は「安全性と再現性」を最優先に設計されています。 かつて、顧客の都合で未完成のシステムを納品せざるを得ず、その後、データ不整合の修正に膨大な労力を費やした経験があります。 その経験から、「人為的ミスや予期せぬ自動コミットを防ぎ、すべての操作を追跡可能にするツール」が必要だと痛感しました。 SQL-Bless は、そうした現場での教訓から生まれた、安全で再現性のある DB メンテナンスツールです。

Key Binding
Enter, Ctrl+M 改行(末尾が;であるか、明らかに一行未満で終わるコマンド1時はSQLを実行)
Ctrl+Enter, Meta+Enter, Ctrl+J SQLを実行
, Ctrl+F カーソルを右へ移動
, Ctrl+B カーソルを左へ移動
, Ctrl+P カーソルを上、もしくはヒストリの前のSQLを参照
, Ctrl+N カーソルを上、もしくはヒストリの後のSQLを参照
Ctrl+D 一次削除もしくは、EOF:ロールバックして終了
PageUp, Ctrl+, Meta+P ヒストリ参照(過去方向)
PageDown, Ctrl+, Meta+N ヒストリ参照(未来方向)
Tab テーブル名・カラム名補完

MetaAlt+keyもしくは、Esc の後にkeyを押下することを意味します。

サポートコマンド

 

スプールファイルの例

# (2023-04-17 22:52:16)
# select *
#   from tab
#  where rownum < 5
TNAME,TABTYPE,CLUSTERID
AQ$_INTERNET_AGENTS,TABLE,<NULL>
AQ$_INTERNET_AGENT_PRIVS,TABLE,<NULL>
AQ$_KEY_SHARD_MAP,TABLE,<NULL>
AQ$_QUEUES,TABLE,<NULL>
# (2023-04-17 22:52:20)
# history
0,2023-04-17 22:52:05,spool hoge
1,2023-04-17 22:52:16,"select *
  from tab
 where rownum < 5"
2,2023-04-17 22:52:20,history

インストール

バイナリパッケージをReleasesよりダウンロードして、実行ファイルを展開してください。

scoop インストーラーを使用する場合

scoop install https://raw.githubusercontent.com/hymkor/sqlbless/master/sqlbless.json

or

scoop bucket add hymkor https://github.com/hymkor/scoop-bucket
scoop install sqlbless

go install でインストールする場合

go install github.com/hymkor/sqlbless/cmd/sqlbless@latest

設定(Configuration)

SQL-Bless は設定ファイルを必要とせず、すべてコマンドラインオプションで指定できます。 デフォルトでは、ローカルのテスト用データベースに接続するための設定は含まれていません。そのため、接続情報は起動時に必ず指定してください。

たとえば、バッチファイルやシェルスクリプトを作成して、SQL-Bless を起動する際に接続情報を渡す方法が推奨されます。

起動方法

$ sqlbless {options} [DRIVERNAME] DATASOURCENAME

DRIVERNAME は DATASOURCENAME の中に含まれている場合は省略可能です。

SQLite3

$ sqlbless sqlite3 :memory:
$ sqlbless sqlite3 path/to/file.db

Oracle

$ sqlbless oracle://USERNAME:PASSWORD@HOSTNAME:PORT/SERVICE

PostgreSQL

$ sqlbless postgres://USERNAME:PASSWORD@HOSTNAME:PORT/DBNAME

SQL Server

$ sqlbless sqlserver://USERNAME:PASSWORD@HOST/INSTANCE

( Windows authentication )
$ sqlbless "sqlserver://@HOST/INSTANCE?Database=master&protocol=lpc"

MySQL

$ sqlbless mysql USERNAME:PASSWORD@/DBNAME

共通オプション

環境変数

Acknowledgements

Author

hymkor (HAYAMA Kaoru)

License

MIT License


  1. DESC, EDIT, EXIT, HISTORY, HOST, QUIT, REM, SPOOL, START, \D ↩︎