<English> / <Japanese>
The SQL-Bless is a command-line database client like SQL*Plus or psql.
- Emacs-like keybindings for inline editing of multiple lines of SQL.
- The action of
Enter
key will only insert a line feed code. - Press
Ctrl-J
orCtrl
-Enter
to execute the input.
- The action of
- Save the result of SELECT in CSV format
- Supported RDBMS
- SQLite3
- Oracle
- PostgreSQL
- Microsoft SQL Server
- MySQL
- Allows editing database records directly, similar to a spreadsheet (with the
EDIT
command) - Auto commit is disabled.
Video by @emisjerry
Key | Binding |
---|---|
Enter , Ctrl -M |
Insert a linefeed |
Ctrl -Enter /J |
Execute text as SQL |
Ctrl -F /B |
Move Cursor forward or backward |
Ctrl -N /P |
Move Cursor or refer history |
Ctrl -C |
Exit with rollback |
Ctrl -D |
Delete character or submit EOF (exit with rollback) |
ALT -P , Ctrl -Up , PageUp |
Insert the previous SQL (history) |
ALT -N , Ctrl -Down , PageDown |
Insert the next SQL (history) |
-
SELECT
/INSERT
/UPDATE
/DELETE
INSERT
,UPDATE
andDELETE
begin the transaction automatically.
-
COMMIT
/ROLLBACK
-
SPOOL
spool FILENAME
.. open FILENAME and write log and output.spool off
.. stop spooling and close.
-
EXIT
/QUIT
- Rollback a transaction and exit SQL-Bless.
-
START filename
- Start the SQL script given with filename
-
REM comments
-
DESC [tablename]
/\D [tablename]
- When the tablename is given, show the specification of the the table
- Without the tablename, show the list of tables.
-
HISTORY
- Show the history of input SQLs
-
EDIT tablename [WHERE conditions...]
- Start an editor to modify the selected records of the table.
- In the editor, press
c
to apply changes,q
orESC
to quit without applying changes - Because the EDIT statement automatically generates SQL from data changed in the editor, it may not be able to properly represent SQL data for special types specific to individual databases. If you find it, we would appreciate it if you could contact us.
-
Semicolon
;
is a statement seperator when script is executed. -
When sql is input interactively, Semicolon
;
is ignored.
# (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
Download the binary package from Releases and extract the executable.
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
$ sqlbless {options} DRIVERNAME "DATASOURCENAME"
$ sqlbless sqlite3 :memory:
$ sqlbless sqlite3 path/to/file.db
- Use
- https://github.com/mattn/go-sqlite3 (Windows-386, TDM-GCC is required)
- https://github.com/glebarez/go-sqlite (Linux and Windows-amd64)
$ sqlbless oracle oracle://USERNAME:PASSWORD@HOSTNAME:PORT/SERVICE
$ sqlbless postgres "host=127.0.0.1 port=5555 user=USERNAME password=PASSWORD dbname=DBNAME sslmode=disable"
$ sqlbless sqlserver "sqlserver://@localhost?database=master"
( Windows authentication )
$ sqlbless.exe mysql user:password@/database
-crlf
- Use CRLF
-fs string
- Set a field separator (default
","
)
- Set a field separator (default
-null string
- Set a string representing NULL (default
"<NULL>"
)
- Set a string representing NULL (default
-tsv
- Use TAB as seperator
-f string
- Start the script