This tool is designed to interact with SQLite databases via command-line interface. Other than just issuing the sql staments by yourself, you can let AI generate sql statements based on your prompt.
- Python>=3.12 (optional)
- Clone repo and install requirements
git clone https://github.com/Simatwa/sqlite3-cli-manager.git
cd sqlite3-cli-manager
pip install -r requirements.txtAlternatively, you can download standalone executables for your system from here.
$ python manager.py --help
Usage: manager.py [OPTIONS] COMMAND [ARGS]...
Interact with SQLite databases via command-line interface
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
execute Run sql statements against database [AUTO-COMMITS]
interactive Execute sql statements interactively
show-columns List columns for a particular table
show-tables List tables contained in the database
- The
executecommand accepts multiple sql statements and run each against the database before auto-commiting the changes.
$ python manager.py execute --help
Usage: sqlite-manager execute [OPTIONS] DATABASE
Run sql statements against database [AUTO-COMMITS]
Options:
-s, --sql TEXT Sql statements [required]
-j, --json Stdout results in json format
-q, --quiet Do not stdout results
--help Show this message and exit.
$ sqlite-manager execute <path-to-sqlite3-database> -s "<sql-statement>"
For example:
$ python manager execute test.db -s "select * from linux"
βββββββββ³βββββββββ³βββββββββ³ββββββββββββ³βββββββββ³βββββββββ³βββββββββββββ³βββββββββββββ
β Index β Col. 1 β Col. 2 β Col. 3 β Col. 4 β Col. 5 β Col. 6 β Col. 7 β
β‘ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 0 β 1 β Parrot β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:22:13 β 13:22:13 β
βββββββββΌβββββββββΌβββββββββΌββββββββββββΌβββββββββΌβββββββββΌβββββββββββββΌβββββββββββββ€
β 1 β 2 β Kali β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:22:21 β 13:22:21 β
βββββββββΌβββββββββΌβββββββββΌββββββββββββΌβββββββββΌβββββββββΌβββββββββββββΌβββββββββββββ€
β 2 β 3 β Ubuntu β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:48:18 β 13:48:18 β
βββββββββΌβββββββββΌβββββββββΌββββββββββββΌβββββββββΌβββββββββΌβββββββββββββΌβββββββββββββ€
β 3 β 4 β Fedora β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:48:49 β 13:48:49 β
βββββββββ΄βββββββββ΄βββββββββ΄ββββββββββββ΄βββββββββ΄βββββββββ΄βββββββββββββ΄βββββββββββββ
- The
interactivecommand launches a recursive prompt that takes in sql statements and proceed to run them against the database.
$ python manager.py interactive --help
Usage: manager.py interactive [OPTIONS] DATABASE
Execute sql statements interactively
Options:
-c, --color TEXT Results font color
-j, --json Stdout results in json format
-a, --auto-commit Enable auto-commit
-C, --disable-coloring Stdout prompt text in white font color
-S, --disable-suggestions Do not suggest sql statements
-N, --new-history-thread Start a new history thread
--help Show this message and exit.
$ sqlite-manager execute <path-to-sqlite3-database> -s "<sql-statement>"
For example:
$ python manager.py interactive test.db
Welcome to interactive sqlite3-db manager.
Run help or h <command> for usage info.
Repo : https://github.com/Simatwa/sqlite3-cli-manager
β°β>select * from Linux
βββββββββ³βββββββββ³βββββββββ³ββββββββββββ³βββββββββ³βββββββββ³βββββββββββββ³βββββββββββββ
β Index β Col. 1 β Col. 2 β Col. 3 β Col. 4 β Col. 5 β Col. 6 β Col. 7 β
β‘ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 0 β 1 β Parrot β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:22:13 β 13:22:13 β
βββββββββΌβββββββββΌβββββββββΌββββββββββββΌβββββββββΌβββββββββΌβββββββββββββΌβββββββββββββ€
β 1 β 2 β Kali β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:22:21 β 13:22:21 β
βββββββββΌβββββββββΌβββββββββΌββββββββββββΌβββββββββΌβββββββββΌβββββββββββββΌβββββββββββββ€
β 2 β 3 β Ubuntu β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:48:18 β 13:48:18 β
βββββββββΌβββββββββΌβββββββββΌββββββββββββΌβββββββββΌβββββββββΌβββββββββββββΌβββββββββββββ€
β 3 β 4 β Fedora β community β None β 1 β 2024-11-07 β 2024-11-07 β
β β β β β β β 13:48:49 β 13:48:49 β
βββββββββ΄βββββββββ΄βββββββββ΄ββββββββββββ΄βββββββββ΄βββββββββ΄βββββββββββββ΄βββββββββββββ
ββ[Smartwa@localhost](smartBet2.db)~[π16:55:56-π»00:00:03-β‘-3.9s]
β°β>select * from
select * from Linux
select * from sqlite_schema
select * from sqlite_temp_schema
- The
show-columnscommand lists the columns for a particular table in the database.
$ python manager.py show-columns --help
Usage: sqlite-manager show-columns [OPTIONS] DATABASE TABLE
List columns for a particular table
Options:
-j, --json Stdout results in json format
--help Show this message and exit.
$ python manager.py show-columns <path-to-sqlite3-database> <table-name>"
For example:
$ python manager.py show-columns test.db linux
βββββββββ³βββββββββ³ββββββββββββββββ³ββββββββββββββββ³βββββββββ³βββββββββββββββ³βββββββββ
β Index β Col. 1 β Col. 2 β Col. 3 β Col. 4 β Col. 5 β Col. 6 β
β‘ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 0 β 0 β id β INTEGER β 0 β None β 1 β
βββββββββΌβββββββββΌββββββββββββββββΌββββββββββββββββΌβββββββββΌβββββββββββββββΌβββββββββ€
β 1 β 1 β distro β TEXT β 1 β None β 0 β
βββββββββΌβββββββββΌββββββββββββββββΌββββββββββββββββΌβββββββββΌβββββββββββββββΌβββββββββ€
β 2 β 2 β org β TEXT β 0 β 'community' β 0 β
βββββββββΌβββββββββΌββββββββββββββββΌββββββββββββββββΌβββββββββΌβββββββββββββββΌβββββββββ€
β 3 β 3 β logo β BLOB NULLABLE β 0 β None β 0 β
βββββββββΌβββββββββΌββββββββββββββββΌββββββββββββββββΌβββββββββΌβββββββββββββββΌβββββββββ€
β 4 β 4 β is_maintained β BOOLEAN β 0 β 1 β 0 β
βββββββββΌβββββββββΌββββββββββββββββΌββββββββββββββββΌβββββββββΌβββββββββββββββΌβββββββββ€
β 5 β 5 β updated_on β TIMESTAMP β 0 β CURRENT_TIMβ¦ β 0 β
βββββββββΌβββββββββΌββββββββββββββββΌββββββββββββββββΌβββββββββΌβββββββββββββββΌβββββββββ€
β 6 β 6 β created_at β TIMESTAMP β 1 β CURRENT_TIMβ¦ β 0 β
βββββββββ΄βββββββββ΄ββββββββββββββββ΄ββββββββββββββββ΄βββββββββ΄βββββββββββββββ΄βββββββββ
- The
show-tablescommand lists the available tables across the entire database.
$ python manager.py show-tables --help
Usage: manager.py show-tables [OPTIONS] DATABASE
List tables contained in the database
Options:
-j, --json Stdout results in json format
--help Show this message and exit.
$ python manager.py show-tables <path-to-sqlite3-database>
For example:
$ python manager.py show-tables test.db
βββββββββ³βββββββββ³βββββββββββββββββββββ³βββββββββ³βββββββββ³βββββββββ³βββββββββ
β Index β Col. 1 β Col. 2 β Col. 3 β Col. 4 β Col. 5 β Col. 6 β
β‘ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 0 β main β sqlite_sequence β table β 2 β 0 β 0 β
βββββββββΌβββββββββΌβββββββββββββββββββββΌβββββββββΌβββββββββΌβββββββββΌβββββββββ€
β 1 β main β Linux β table β 7 β 0 β 0 β
βββββββββΌβββββββββΌβββββββββββββββββββββΌβββββββββΌβββββββββΌβββββββββΌβββββββββ€
β 2 β main β sqlite_schema β table β 5 β 0 β 0 β
βββββββββΌβββββββββΌβββββββββββββββββββββΌβββββββββΌβββββββββΌβββββββββΌβββββββββ€
β 3 β temp β sqlite_temp_schema β table β 5 β 0 β 0 β
βββββββββ΄βββββββββ΄βββββββββββββββββββββ΄βββββββββ΄βββββββββ΄βββββββββ΄βββββββββ
Contributions are always welcoming. Consider implementing new feature or fixing my bad code.
- Let AI generate sql statements based on user's prompt.