<English> / <Japanese>
SQL-Bless は SQL*Plus や psql のようなコマンドライン用データベースクライアントです。
- Emacs風キーバインドで複数行のSQLをインラインで編集可能
- Enter キーは改行を挿入するのみ
- Ctrl-Enter (Ctrl-J) で入力内容を実行
- SELECT結果は CSV 形式で保存
- 以下のRDBMSをサポート
- SQLite3
- Oracle
- PostgreSQL
- Microsoft SQL Server
- MySQL
- データベースのレコードをスプレッド風に編集可能 (
EDIT
コマンド) - トランザクションモード動作(オートコミット無効化)
@emisjerry さんによる 紹介動画
Key | Binding |
---|---|
Enter , Ctrl -M |
改行を挿入 |
Ctrl -Enter /J or ; +Enter 1 |
SQLを実行 |
Ctrl -F /B |
カーソルを前後に移動 |
Ctrl -N /P |
カーソル移動、もしくはヒストリ参照 |
Ctrl -C |
ロールバックして終了 |
Ctrl -D |
一次削除もしくは、EOF:ロールバックして終了 |
ALT -P , Ctrl -Up , PageUp |
ヒストリ参照(過去方向) |
ALT -N , Ctrl -Down , PageDown |
ヒストリ参照(未来方向) |
SELECT
/INSERT
/UPDATE
/DELETE
INSERT
,UPDATE
,DELETE
は自動的にトランザクションを開始します
COMMIT
/ROLLBACK
SPOOL
spool FILENAME
.. FILENAME を開いて、ログや出力を書き込みますspool off
.. スプールを止めてクローズします
EXIT
/QUIT
- トランザクションをロールバックして、SQL-Bless を終了します
START filename
- ファイル名で指定した SQL スクリプトを実行します。
REM comments
DESC [tablename]
/\D [tablename]
- テーブル名が指定された場合、そのテーブルの使用を表示します
- テーブル名が省略された場合、テーブルの一覧を表示します
HISTORY
- 入力履歴を表示します
EDIT tablename [WHERE conditions...]
- 選択したテーブルのレコードを修正するため [エディタ][csvi] を起動します
- エディタ中では以下のキーが拡張されます
=
x
ord
: セルに NULL をセットするc
: 変更を適用して終了q
orESC
: 修正を破棄して終了
- EDIT文は、エディターでの変更データから自動で SQL を生成する都合、個々のデータベース固有の特殊な型向けの SQL データをうまく表現できない場合があります。見つかりましたら、ご連絡いただけるとたすかります。
- スクリプトを実行する時、セミコロン
;
、もしくは-term string
で指定された文字列が文の区切りとなります - インタラクティブに SQL を入力する時、セミコロン
;
もしくは-term string
で指定された文字列は無視されます
# (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 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 github.com/hymkor/sqlbless/cmd/sqlbless@latest
$ sqlbless {options} [DRIVERNAME] DATASOURCENAME
DRIVERNAME は、DATASOURCENAME の中に含まれている場合は省略可能です。
$ sqlbless sqlite3 :memory:
$ sqlbless sqlite3 path/to/file.db
$ sqlbless oracle oracle://USERNAME:PASSWORD@HOSTNAME:PORT/SERVICE
$ sqlbless oracle://USERNAME:PASSWORD@HOSTNAME:PORT/SERVICE
- 使用ドライバー: https://github.com/sijms/go-ora
$ sqlbless postgres host=127.0.0.1 port=5555 user=USERNAME password=PASSWORD dbname=DBNAME sslmode=disable
$ sqlbless postgres postgres://USERNAME:[email protected]:5555/DBNAME?sslmode=verify-full
$ sqlbless postgres://USERNAME:[email protected]:5555/DBNAME?sslmode=verify-full
- 使用ドライバー https://github.com/lib/pq
$ sqlbless sqlserver sqlserver://@localhost?database=master
$ sqlbless sqlserver://@localhost?database=master
( Windows authentication )
$ sqlbless.exe mysql user:password@/database
- 使用ドライバー http://github.com/go-sql-driver/mysql
- パラメータ
?parseTime=true&loc=Local
が予め設定されていますが、上書き可能です
-crlf
- 改行コードに CRLF を使う
-fs string
- 区切り文字を指定する(default
","
)
- 区切り文字を指定する(default
-null string
- NULLを表現する文字列を指定(default
"<NULL>"
)
- NULLを表現する文字列を指定(default
-tsv
- タブを区切り文字に使う
-f string
- スクリプトを実行する
-submit-enter
Enter
で確定し、Ctrl
-Enter
で新しい行を挿入するようにする
-debug
SELECT
とEDIT
のヘッダに型情報を表示するようにした
-help
- ヘルプを表示
Footnotes
-
;
もしくは-term string
で指定された文字列 ↩